Copy of Securing Access Across Multiple AWS Accounts
In a multi-account AWS environment, organizations must secure access across multiple AWS accounts while maintaining centralized control, scalability, and security best practices. AWS provides several mechanisms to achieve this, including IAM Identity Center (AWS SSO), IAM Roles with AWS STS, and AWS Organizations' SCPs.
This study guide covers how SecureCart secures multi-account access using role-based access control (RBAC), permission sets, and IAM roles to enforce least privilege access across multiple AWS accounts.
Multi-Account Setup
Organizations, including SecureCart, adopt a multi-account AWS strategy to:
Improve security isolation between workloads.
Enable fine-grained access control for different teams.
Enforce least privilege access across accounts.
Centralize authentication and access management.
Common AWS Multi-Account Access Models
Access Model
Best Used For
Key AWS Services
IAM Identity Center (AWS SSO)
Centralized authentication & access across multiple accounts
IAM Identity Center, AWS Organizations
Cross-Account IAM Roles
Granting permissions across accounts without IAM Users
IAM Roles, AWS STS
Service Control Policies (SCPs)
Restricting what accounts can do (Guardrails)
AWS Organizations, SCPs
Resource-based Policies
Granting access to AWS resources across accounts
S3, KMS, Lambda, SNS
Best Practice: Use IAM Identity Center for user authentication and IAM Roles for service-to-service access.
IAM Identity Center for Multi-Account Access
AWS IAM Identity Center (SSO) provides
Centralized authentication across multiple AWS accounts.
Federated login with corporate identity providers (Okta, Azure AD, etc.).
Role-based access via Permission Sets.
Why SecureCart Uses IAM Identity Center Instead of IAM Users
Eliminates the need for multiple IAM Users.
Provides a single sign-on (SSO) experience for all AWS accounts.
Integrates with corporate identity providers (Okta, Azure AD) for authentication.
How SecureCart Implements IAM Identity Center
Step 1: Enable IAM Identity Center in AWS Organizations
Step 2: Create IAM Identity Center Groups for SecureCart
SecureCart-DevelopersSecureCart-SecuritySecureCart-Finance
Step 3: Users are added to the groups
Step 4: Define Permission Sets Based on Roles
A Permission Set defines what users can do in AWS accounts
Step 4: Assign IAM Identity Center Groups to AWS Accounts and Select the Permission
IAM Identity Center now provisions IAM Roles in AWS accounts for the SecureCart Developers Group.
When assigned to a Group, IAM Identity Center automatically creates an IAM Role in each account.
Cross-Account IAM Roles for Services
Cross-Account IAM Roles allow AWS services in one AWS account to access resources in another AWS account securely.
Scenario: SecureCart’s CI/CD Pipeline Deploying Across AWS Accounts
Requirement: SecureCart’s CI/CD pipeline in the DevOps AWS account needs to deploy applications to the Production AWS account.
Solution:
Create an IAM Role in the Production Account that allows DevOps to assume it.
SecureCart’s CI/CD pipeline assumes this IAM Role using AWS STS.
Now, the DevOps account can securely deploy applications in Production without hardcoded credentials.
IAM Identity Center (AWS SSO) Use Case: Cross-Account Role Access
SecureCart manages multiple AWS accounts (Dev, Staging, Prod). Instead of creating IAM Users in each account, SecureCart uses IAM Identity Center (AWS SSO) to manage cross-account access.
✅ IAM Identity Center Assignments:
User Group
AWS Account
Permission Set (IAM Role)
SecureCart-Developers
Dev
AdministratorAccess
SecureCart-Developers
Staging
PowerUserAccess
SecureCart-Developers
Production
ReadOnlyAccess
SecureCart-Ops
All Accounts
AdministratorAccess
SecureCart-Support
Production
ReadOnlyAccess
📌 Impact: ✅ Users log in via IAM Identity Center (AWS SSO) and assume the correct IAM Role automatically. ✅ No need for IAM Users or long-term credentials.
📌 Key Takeaways for SecureCart
🔹 RBAC ensures that access is granted based on job roles. 🔹 IAM Roles replace IAM Users, reducing security risks. 🔹 Temporary credentials eliminate hardcoded access keys. 🔹 AWS STS enables secure, time-limited access for external users. 🔹 IAM Identity Center centralizes access across multiple AWS accounts.
Enforcing Guardrails with Service Control Policies (SCPs)
Service Control Policies (SCPs) are organization-wide policies that help enforce governance and security controls across multiple AWS accounts in an AWS Organizations setup.
Key Characteristics of SCPs
SCPs do not grant permissions but instead restrict actions that IAM Roles, IAM Users, and AWS Root Users can perform.
SCPs apply at the AWS Organizations level, meaning they affect all IAM identities (users, roles, and groups) in an account.
SCPs can be applied to AWS Accounts, Organizational Units (OUs), or the Root Organization.
SCPs do not override IAM permissions, but they act as guardrails to prevent unauthorized actions.
Think of SCPs as a "deny by default" framework that ensures certain actions are always blocked—even if an IAM policy allows them.
SCPs restrict what AWS accounts can do (even if an IAM Role has permissions).
Best Practice: SecureCart uses SCPs to block high-risk actions.
Example SCP: Deny Deletion of IAM Roles
Now, no one in SecureCart's AWS accounts can delete IAM Roles—even if their IAM Role allows it.
How SCPs Work with AWS Organizations & IAM
SCPs are attached to AWS Organizations' Root, OUs, or AWS Accounts.
They do NOT grant permissions—only restrict actions.
If an SCP explicitly denies an action, IAM Users and Roles in the account cannot perform it, even if an IAM Policy allows it.
SCP vs. IAM Policies
Feature
Service Control Policies (SCPs)
IAM Policies
Applies To
AWS Accounts, Organizational Units (OUs), Root Organization
Individual IAM Users, Groups, and Roles
Grants Permissions?
❌ No
✅ Yes
Restricts Actions?
✅ Yes
✅ Yes
Overrides IAM Permissions?
✅ Yes (Denies take precedence)
❌ No
Used For
Organizational-wide security control
Assigning permissions to users & roles
Best Practice: Use SCPs for high-level security enforcement and IAM Policies for detailed permissions.
SCP Use Cases in SecureCart
SecureCart uses SCPs to enforce security, compliance, and governance controls across multiple AWS accounts.
Example 1: Deny Root User Access to All Accounts
Why? Prevent security risks by ensuring the Root User cannot perform any action.
Result: Even if the Root User tries to create IAM Users or change policies, they are blocked
Example 2: Prevent Developers from Modifying IAM Policies
Why? Developers should not modify IAM Roles or Policies, even if they have broad permissions.
Result: Developers cannot change IAM permissions, even if an IAM Role grants them access.
Example 3: Require All AWS Accounts to Enable Security Services
Why? Ensure that AWS Security Hub, GuardDuty, and AWS Config remain enabled for compliance.
Result: No one can disable security monitoring in SecureCart AWS accounts.
How SecureCart Implements SCPs Across OUs
SecureCart applies SCPs at the Organizational Unit (OU) level to enforce best practices.
📌 SecureCart AWS Organizations SCPs by OU
OU Name
SCP Applied
Security OU
Prevent disabling GuardDuty & Security Hub
Workloads OU
Restrict developers from modifying IAM policies
Infrastructure OU
Deny creation of new VPCs outside the networking account
Sandbox OU
Block access to production resources
Result: SCPs prevent misconfigurations and enforce compliance across all AWS accounts.
SCP Best Practices
Apply SCPs at the OU Level, not the account level, for better scalability.
Use SCPs to enforce security & compliance, not for day-to-day permission management (use IAM for that).
Test SCPs in a non-production OU before applying them org-wide.
Combine IAM Identity Center (AWS SSO) with SCPs for a secure and scalable multi-account architecture.
AWS SCPs help SecureCart enforce organization-wide security while IAM Identity Center manages user access.
Summary: How SCPs Improve Security in Multi-Account AWS Environments
Feature
SCP Use Case
SecureCart Example
Prevent Root User Access
Block all root account actions
Root users cannot modify resources
Restrict IAM Permissions
Stop unauthorized IAM policy changes
Developers cannot modify IAM
Enforce Security Services
Require GuardDuty, Security Hub, AWS Config
Security tools remain enabled
Control Network Changes
Prevent accidental VPC creation
Only the networking team manages VPCs
Limit Billing Access
Block non-finance users from AWS Billing
Only finance can manage AWS Budgets
SCPs enforce security guardrails without replacing IAM permissions.
How SecureCart Secures Multi-Account Access
Security Mechanism
Purpose
AWS Services Used
IAM Identity Center (SSO)
Centralized user authentication & access management
IAM Identity Center, AWS Organizations
IAM Identity Center Groups & Permission Sets
Assign permissions to users in multiple AWS accounts
IAM Identity Center, IAM Roles
Cross-Account IAM Roles
Grant services access across accounts securely
IAM Roles, AWS STS
Service Control Policies (SCPs)
Restrict actions across AWS accounts
AWS Organizations, SCPs
Last updated