<img src="https://ws.zoominfo.com/pixel/6169bf9791429100154fc0a2" width="1" height="1" style="display: none;">

Curious about how StrongDM works? 🤔 Learn more here!

Search
Close icon
Search bar icon
Blog / AWS

Cedar Go Implementation: Simplifying Security for Developers

We are pleased to announce that Amazon has accepted StrongDM's native Go implementation of Cedar into the Cedar Policy Organization's official GitHub repository. This allows Go developers to use Cedar, a security and authorization framework built to be fast, secure, and analyzable natively in their Go programs. 

What is Cedar?

Cedar, created by AWS, is an open-source policy language and evaluation engine that empowers developers to define fine-grained permissions through straightforward policies enforced within their applications. This approach separates access control from application logic, facilitating a more modular and maintainable approach to authorization. Cedar natively supports widely used authorization models, including role-based access control (RBAC) and attribute-based access control (ABAC). This ensures that policies are correctly enforced and thoroughly validated against a wide range of potential scenarios.

Why StrongDM Loves Cedar.

At StrongDM, our enthusiasm for Cedar stems from its exceptional blend of expressiveness, performance, safety, and analyzability. These qualities make it the ideal policy language for implementing robust, efficient, and understandable policy-based access control systems. 

The key factor in our decision to embrace Cedar was its performance in large, complex environments. The AWS team and other noted researchers recently published an in-depth research paper, Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization, which documents Cedar's performance advantages. Compared to OpenFGA and Rego, Cedar uniquely maintains its performance efficiency, even as the number of users and resources scales up—a critical consideration in today's growing digital environments. This observation resonated with our experiences last year when evaluating different policy languages; Cedar consistently demonstrated superior scaling characteristics as entity count (Users, Resources, etc) increased. This characteristic is crucial for developing scalable, secure applications that adapt to growing user bases without compromising efficiency.

Source: Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization (Extended Version); March 2024

Our choice to implement Cedar in Go was deliberate because it aligned with one of our core design principles: making everything easy to use. The language core to our technology, Go, was a choice we made long ago because it is a language that emphasizes readability above all else, making it an ideal language for developing clear and maintainable code. By bringing Cedar's capabilities into the Go ecosystem, we extend this principle of readability to security, allowing developers to integrate strong authorization features into their applications easily. 

Benefits of the Go Implementation

The combination of Cedar's policy language and Go's programming approach enables the creation of secure, high-performance applications that are both powerful and easy to understand. The Go implementation by StrongDM extends Cedar's reach, enabling Go developers to leverage its advanced features, including:

  • Enhanced Security: Incorporating Cedar's cryptographic solutions and policy-based authorization into Go applications helps developers build more secure systems by default.
  • High Performance: Cedar's performance-oriented design is now accessible to Go applications, ensuring security measures without a performance impact.
  • Streamlined Authorization: By integrating policy-based authorization into their applications, developers can manage access controls more effectively, adapting to changing requirements with minimal effort.
  • Simplified Access Management: Developers can more easily define, update, and enforce access policies, thanks to Cedar's flexible and powerful policy framework.
  • Familiar Language Interface: A native Go implementation brings performance benefits, reliability, and readability for Go developers.

”Last year, we fell in love with everything the Amazon team built in Cedar. Our Go implementation allows us to take full advantage of everything the policy language offers in a way that integrates seamlessly with our product.

The Cedar team has been amazing to work with and has provided advice and support as we embarked on our journey with Cedar. As a demonstration of our commitment to both the Cedar and Go communities, we wanted to contribute our implementation to the Cedar project. We’re thrilled that AWS has accepted it into the official Cedar repo.”

- Justin McCarthy, CTO and co-founder of StrongDM

Our goal with contributing a Go implementation to Cedar is to empower developers with the tools they need to enforce robust security policies effortlessly. This is about enhancing the security and performance of applications with cutting-edge authorization.

Invitation to the Developer Community

This contribution marks a milestone in the ongoing development of the Cedar project and its adoption in the software development community. Developers and organizations are encouraged to explore the Go implementation, contribute to its development, and integrate Cedar's security features into their own projects.

The Go implementation is available on GitHub at https://github.com/cedar-policy/cedar-go, inviting collaboration, feedback, and further enhancement from the community.

StrongDM's contribution of a Go implementation to Cedar is a step toward the broader adoption of sophisticated security and authorization mechanisms in software development. By making policy-based authorization more accessible to Go developers, this initiative helps build more secure and efficient applications, fostering a safer digital environment for all. This first contribution is just a start, and we plan to further enrich and improve it over time.


About the Author

, Co-founder / CTO, originally developed empathy for Operations as a founding and pager-carrying member of many operations and data teams. As an Executive, he has led Engineering and Product in high-throughput and high-stakes e-Commerce, financial, and AI products. Justin is the original author of strongDM's core protocol-aware proxy technology. To contact Justin, visit him on Twitter.

StrongDM logo
💙 this post?
Then get all that StrongDM goodness, right in your inbox.

You May Also Like

AWS re:Invent 2023 Recap
AWS re:Invent 2023 Recap: RDS for Db2, EKS Pod Identity & More
re:Invent 2023 was AWS’ 12th conference, and it did not disappoint. More than 50,000 of us descended onto Las Vegas for a week of learning, networking, and discussing all things cloud. The campus was insanely large, spanning most of the Las Vegas strip, so that meant we got our steps in! We had some fun along the way, as well, at the many social gatherings, parties and amazing musical experience re:Play.
AWS Well-Architected Framework Security Best Practices
AWS Well-Architected Framework Security Best Practices
The AWS Well-Architected Framework has been a staple for many years for AWS practitioners of all sorts, including cloud architects and platform engineers. It’s a blueprint for architectural and design best practices that will lay the foundation for resilience, operational efficiency, and security on the AWS Cloud.
Simplifying AWS Access with StrongDM Without Compromising Security Posture
Simplifying AWS Access with StrongDM Without Compromising Security Posture
Since Amazon Web Services first announced it in 2011, AWS IAM has evolved to become the gateway to the AWS Cloud. Organizations cannot interact with their cloud resources and its many services without it. Identity, not networking, is the real access boundary.
How to Simplify Auditing Access in AWS
How to Simplify Auditing Access in AWS
Want a secure and compliant AWS environment? Then you need to audit access. Keeping tabs on who has accessed what—as well as the whens, wheres, and whys—helps you spot suspicious activities and address them promptly. Without this kind of access control, your sensitive data could be exposed to malicious actors, putting you at risk of data breaches and subsequent regulatory nightmares or service interruptions.
AWS IAM Best Practices for Enhanced Security
12 AWS IAM Best Practices for Enhanced Security
When it comes to cloud security, AWS follows the Shared Responsibility Model. They secure the underlying infrastructure while you protect your data, applications, and systems—including the identities that access them. Integrating AWS with a dynamic access management tool like StrongDM is key to securing identities in the cloud. StrongDM centralizes access control, while AWS offers robust security measures, contributing to a solid defense against unauthorized access.