An enterprise manages a multi-account environment using AWS Organizations with consolidated billing. The architecture includes a management account, a shared networking account, and multiple member accounts for application teams.
The solutions architect must design a resource sharing and cost management strategy with the following requirements:
- Share VPC subnets from the networking account to application member accounts to allow application deployments.
- Ensure EBS volumes created by application teams in their respective accounts are encrypted using a centralized KMS key managed by the Security team in a dedicated Security account.
- Maximize cost savings across the organization, which runs a combination of Amazon EC2 instances, AWS Fargate tasks, and AWS Lambda functions across all application accounts.
- Ensure the sharing of VPC subnets is restricted strictly to accounts within the AWS Organization.
Which of the following strategies represents the most secure, operationally efficient, and cost-effective solution to meet these requirements?
- AIn the networking account, create an AWS Resource Access Manager (RAM) resource share for the subnets, selecting the AWS Organization ID as the principal, without enabling resource sharing in the AWS Organizations management account. In the Security account, create a KMS Customer Managed Key (CMK) with a key policy allowing cross-account access. In the management account, purchase Compute Savings Plans, and disable billing sharing in the consolidated billing settings to force the discount application to be calculated individually in each member account's console.
- BIn the networking account, create an AWS RAM resource share for the subnets, selecting the individual application account IDs as principals. In the Security account, use the AWS managed key (aws/ebs) and update its policy to allow the application accounts to perform cryptographic operations. In the management account, purchase EC2 Instance Savings Plans to maximize discounts for the EC2, Fargate, and Lambda workloads.
- Enable resource sharing in the AWS Organizations management account. In the networking account, create an AWS Resource Access Manager (RAM) resource share for the subnets, selecting the AWS Organization ID as the principal. In the Security account, create a KMS Customer Managed Key (CMK) with a key policy that allows root-level principal access from the application accounts, and configure local IAM policies in the application accounts to delegate permissions. In the management account, purchase Compute Savings Plans to cover EC2, Fargate, and Lambda usage across all consolidated accounts.Answer
- DEnable resource sharing in the AWS Organizations management account. In the networking account, create an AWS RAM resource share for the subnets, selecting the AWS Organization ID as the principal. In the Security account, create a KMS Customer Managed Key (CMK). Attach a Service Control Policy (SCP) to the application accounts' OU that explicitly grants kms:Decrypt and kms:GenerateDataKeyWithoutPlaintext permissions to all local IAM users, assuming this grants permissions without local IAM policies. In the management account, purchase EC2 Instance Savings Plans.