An enterprise is designing a multi-account AWS environment using AWS Organizations. The security team must enforce the following compliance requirements:
1. Member accounts must not be able to disable or disassociate Amazon GuardDuty.
2. A custom IAM role named `SecurityAuditRole` in member accounts, which is used for security scanning, must be protected against modification or deletion by any user in those accounts.
3. Centralized AWS CloudTrail logs from all member accounts must be encrypted in a dedicated S3 bucket in a Security account using an encryption key that permits cross-account log delivery.
Which combination of actions will meet these requirements with the least operational complexity?
- Apply a Service Control Policy (SCP) at the Organization root that denies guardduty:Delete* and guardduty:Disassociate*, and denies IAM write actions where the resource is arn:aws:iam::*:role/SecurityAuditRole. Ensure local users in member accounts are granted permissions via local IAM policies. For CloudTrail, encrypt the S3 bucket in the Security account using an AWS KMS customer managed key, and update its key policy to allow the CloudTrail service principal from the Organization to perform cryptographic operations.Cevap
- BApply a Service Control Policy (SCP) at the Organization root that grants full administrator privileges to all users, except for denying guardduty:Delete* and guardduty:Disassociate*, and denying IAM write actions on arn:aws:iam::*:role/SecurityAuditRole. Rely on this SCP to grant access to member account users without configuring local IAM policies. For CloudTrail, encrypt the S3 bucket in the Security account using an AWS KMS customer managed key, and update its key policy to allow the CloudTrail service principal.
- CApply a Service Control Policy (SCP) at the Organization root that denies guardduty:Delete* and guardduty:Disassociate*, and denies IAM write actions where the resource is arn:aws:iam::*:role/SecurityAuditRole. In the member accounts, grant permissions via local IAM policies. For CloudTrail, encrypt the S3 bucket in the Security account using the default AWS managed key (aws/s3), and configure the key policy of aws/s3 to allow the CloudTrail service principal from all member accounts to perform cryptographic operations.
- DApply a Service Control Policy (SCP) at the Organization root that denies guardduty:Delete* and guardduty:Disassociate*, and denies IAM write actions on arn:aws:iam::*:role/SecurityAuditRole. Create the SecurityAuditRole in all member accounts and establish a trust relationship with an external SAML identity provider, specifying the sts:AssumeRole action in the trust policy instead of sts:AssumeRoleWithSAML to simplify federated access. For CloudTrail, encrypt the S3 bucket in the Security account using an AWS KMS customer managed key.
Cevap
Apply a Service Control Policy (SCP) at the Organization root that denies guardduty:Delete* and guardduty:Disassociate*, and denies IAM write actions where the resource is the specific SecurityAuditRole. Ensure local users in member accounts are granted permissions via local IAM policies. For CloudTrail, encrypt the S3 bucket in the Security account using an AWS KMS customer managed key, and update its key policy to allow the CloudTrail service principal from the Organization to perform cryptographic operations.
The correct solution uses an Organization-level SCP to restrict administrative actions (GuardDuty deletion and modification of the SecurityAuditRole) while relying on local IAM policies to grant permissions. It also uses a customer managed KMS key to support cross-account log encryption for CloudTrail, which is a requirement since AWS-managed keys cannot be shared across accounts.
Adım Adım Çözüm
Anahtar Kavram
AWS Organizations SCP boundaries combined with Customer Managed KMS Keys for cross-account governance.