An enterprise manages its multi-account environment using AWS Organizations. The architecture consists of a Management account, a central Network account, a dedicated Log Archive account, and multiple Application accounts. A solutions architect is designing a resource sharing and cost management strategy with the following requirements:
* Subnets from a central VPC in the Network account must be shared with the Application accounts to run EC2 instances and ECS tasks on AWS Fargate.
* Application teams must be able to control network traffic to their resources within these shared subnets.
* AWS CloudTrail logs from all accounts must be consolidated into a single S3 bucket in the Log Archive account. These logs must be encrypted using a KMS key that the security team can rotate manually.
* The company wants to maximize cost savings for both EC2 and Fargate workloads across all accounts in the organization.
Which strategy should the solutions architect implement to meet these requirements?
- Enable resource sharing within the organization in the Management account. In the Network account, use AWS Resource Access Manager (RAM) to share the private subnets with the Application accounts. Instruct the application teams to create and associate their own security groups locally within their accounts. In the Log Archive account, create an S3 bucket and a customer managed KMS key. Configure the S3 bucket policy to allow the CloudTrail service principal to write logs using the aws:PrincipalOrgID condition, and allow the service principal to use the KMS key. Configure CloudTrail in all accounts to send logs to this bucket. Purchase Compute Savings Plans in the Management account with sharing enabled.Answer
- BEnable resource sharing within the organization in the Management account. In the Network account, use AWS RAM to share the private subnets and central security groups with the Application accounts. In the Log Archive account, create an S3 bucket and encrypt it using the default AWS-managed S3 key (aws/s3). Modify the key policy of aws/s3 to permit cross-account CloudTrail access. Configure CloudTrail in all accounts to send logs to this bucket. Purchase Compute Savings Plans in the Management account with sharing enabled.
- CEnable resource sharing within the organization in the Management account. In the Network account, use AWS RAM to share the private subnets with the Application accounts. Instruct the application teams to create their own security groups. In the Log Archive account, create an S3 bucket. Apply a Service Control Policy (SCP) at the root level of the organization that grants s3:PutObject permission on the Log Archive S3 bucket to all member accounts. Purchase EC2 Instance Savings Plans in the Management account with sharing enabled.
- DEnable resource sharing within the organization in the Management account. In the Network account, use AWS RAM to share the private subnets with the Application accounts. Instruct the application teams to create their own security groups. In the Log Archive account, create an S3 bucket and a customer managed KMS key. Configure the S3 bucket policy to allow access only to the Management account's root principal. Configure CloudTrail in all accounts to send logs to this bucket. Purchase Compute Savings Plans in the Management account with sharing disabled, and manually transfer the Savings Plans credits to the member accounts.