A financial services company manages its multi-account environment using AWS Organizations. The security team has grouped all active workload accounts under a single Workloads Organizational Unit (OU). To comply with strict regulatory frameworks, the security team must enforce the following security policies:
1. All Amazon EBS volumes created in the member accounts must be encrypted at rest.
2. Volume encryption must only use Customer Managed Keys (CMKs) created within the local member accounts. The use of AWS-managed keys (such as aws/ebs) is strictly prohibited.
3. A centralized IAM role named SecurityAuditRole, which is deployed via AWS CloudFormation StackSets to all member accounts, must be protected from deletion or modification by any local administrator.
4. The CloudFormation StackSets service must still be allowed to update the SecurityAuditRole from the Management account during security maintenance windows.
Which solutions architect design represents the most secure and operationally efficient configuration to meet these requirements?
- AEnable EBS encryption by default in all member accounts. In each member account, modify the key policy of the AWS-managed KMS key for EBS (aws/ebs) to deny kms:CreateGrant to all local IAM users and roles except the SecurityAuditRole and AWSCloudFormationStackSetExecutionRole. Attach a Service Control Policy (SCP) to the Workloads OU that denies iam:DeleteRole, iam:UpdateRole, and policy modification actions targeting SecurityAuditRole unless the caller is AWSCloudFormationStackSetExecutionRole.
- Create and attach a Service Control Policy (SCP) to the Workloads OU that denies ec2:CreateVolume and ec2:RunInstances if ec2:Encrypted is false. In the same SCP, deny kms:CreateGrant if kms:KeyManager equals AWS when the request is made via the EC2 service principal. Additionally, deny iam:DeleteRole, iam:UpdateRole, and all policy modification actions targeting the SecurityAuditRole resource, except when the caller is the StackSet execution role AWSCloudFormationStackSetExecutionRole.Cevap
- CCreate and attach a Service Control Policy (SCP) to the Workloads OU that denies ec2:CreateVolume and ec2:RunInstances if ec2:Encrypted is false. In the SCP, include an explicit Allow statement granting the AWSCloudFormationStackSetExecutionRole the ability to modify the SecurityAuditRole in member accounts, and remove the corresponding local IAM permissions for role management from all local administrator groups to prevent unauthorized modifications.
- DCreate and attach a Service Control Policy (SCP) to the Workloads OU that denies ec2:CreateVolume and ec2:RunInstances if ec2:Encrypted is false, and denies kms:CreateGrant if kms:KeyManager is AWS for EC2. Attach a separate SCP that denies iam:DeleteRole and iam:UpdateRole on SecurityAuditRole. Configure the trust policy of SecurityAuditRole to trust the Management account's root principal directly for all configuration changes, bypassing the need for AWSCloudFormationStackSetExecutionRole in the member accounts.