🎓 Shortcut to SOC 2: Use AWS Identity Center for Auth

Chris Jones
on May 19, 2025
Technical content rating: 🎓 basic coding literacy assumed
When you're setting up your AWS account — especially for your first time — access controls can be quite an intimidating consideration. By now, you probably know not to log in with your root credentials … right? Right? But the furthest you've gone beyond that may just be creating IAM users for your team. There's a better way!
At the early stage of your company, you should be spending your innovation tokens on building the valuable features your customers want. But if you're building a SaaS business, then SOC 2 compliance is probably in your future. SOC 2 certification will require you to design around these security principles:
Principle of Least Authority: your team should only have the authorizations they need to perform their job function, and no more. You need to limit the impact of accidents and malice.
Role-based Access Control (RBAC): you should not have long-lived credentials floating around your team, or authorizations assigned to specific identities. These create additional attack vectors and ways to shoot yourself in the foot, if for example you forget to de-provision authorizations when a member of your team leaves.
Single sign-on (SSO): ideally, you should have a single identity provider (IdP) that implements your password and multi-factor authentication (MFA) policies in one place. Then the other services your team needs to use can rely on your IdP for authentication, and derive an access token via OAuth or SAML.
Just-in-time (JIT) access for production: we won't delve into JIT access in this post, but be aware that you'll eventually need to lock your production systems and data down like Fort Knox. Access to production only happens on a need-to-have-it basis.
There are services built on top of AWS that will help you achieve these goals. Okta is commonly used at larger companies. My personal favorite is Opal. However, these services are quite expensive and take some time to learn and deploy.
Enter AWS Identity Center. Here's how it works:
You configure an "identity source" (IdP) for Identity Center that's an external provider: your Google Workspace instance, authenticated by SAML
You add an AWS app to your Google Workspace, again with SAML authentication
You configure "permission sets" (roles) in Identity Center. The predefined
AdministratorAccess
,PowerUserAccess
, andReadOnlyAccess
roles are good ones to start with.You create groups for your team. We have an
Engineering
group and anAdmin
group. Aim to minimize the number of members of theAdmin
group.For each of your AWS accounts (you probably only have one), you provision access for your Identity Center groups and assign which roles they're allowed to assume. We allow our
Engineering
group to assume thePowerUserAccess
andReadOnlyAccess
roles, and we allow theAdmin
group to assumeAdministratorAccess
.Finally, add your users to Identity Center and put them in the appropriate group(s), with the username being the email address that your IdP can authenticate. (You can automate user provisioning, but it's not worth the time at your early stage and small scale.)
This should all take around 30 minutes.
Now that you've configured Identity Center, here's how your team will use it:
Your team signs into AWS via your access portal URL, which looks something like https://x-xxxxxxxxxx.awsapps.com/start. For the AWS CLI, you configure your
~/.aws/config
profile to authenticate using your Identity Center portal.The AWS sign-in automatically redirects your team to Google auth and returns to AWS
Your team is given the choice of roles to assume:
ReadOnlyAccess
,PowerUserAccess
, orAdministratorAccess
if they have permission. Your team member chooses the role with least privilege needed to achieve their goal.The authenticated session times out automatically after a configurable duration, so you never need to worry about dangling credentials or lost passwords etc. — Google manages the authentication for you.
And that's it! Using AWS Identity Center won't get you all the way to SOC 2. You'll still need to implement additional policies to lock down your production data and systems. But Identity Center will help you maintain good SOC 2 hygiene without any extra investment of time, and it may be one fewer thing you'll need to rebuild in order to get SOC 2.
p.s. what if you're already created IAM users for your team?
No worries. Just set up Identity Center and then de-provision your IAM users. De-provisioning IAM users can be an interesting exploration of skeletons in your IAM closet, where you find certain people or processes depend on special permission grants that they shouldn't have.
Don't miss these

Andrew Gaul
🎓 Alerts Agent on the DeepStructure Platform
DeepStructure developed an application to address our internal IT oncall needs using our TypeScript-native AI platform. In this post I will show how we combined MCP, Agents, and Slack (MÁS stack) to solve a real-world problem. While this is a specific demonstration, the DeepStructure platform allows external developers to mix-and-match MCP servers, different models, and a variety of frontends to create their own agent workflows.

Chris Jones
🎓 Thinking about MCP as "npm for LLMs"
We describe three parallels between MCP and npm: (1) sure, you _could_ build the tools yourself, but now you don't have to; (2) the integrations become the vendor's problem, not yours; (3) even though the ecosystem isn't uniformly high quality, there's still value for developers who follow best practices

Chris Jones
🎓🎓 Giving "Agentic" a More Precise Definition: Three Levels of Intelligent Execution
We describe "Agentic" systems as Level 1 (intelligent decision making), Level 2 (creative branch generation), and Level 3 (intelligent dynamic execution)