Question

Difficulty: HardBilling, Cost Management, and Resource Sharing Strategy

A multinational corporation uses AWS Organizations to manage a multi-account environment. The organization consists of a Management account, a central Shared Services account, a Production Organizational Unit (OU) containing several application accounts, and a Development OU containing several testing accounts.

The corporation wants to implement a cost optimization and resource sharing architecture with the following requirements:
* A set of VPC subnets created in the Shared Services account must be shared with all application and testing accounts to enable standardized network routing.
* The finance team has purchased a Compute Savings Plan in the Management account. The discount benefits must be applied to the accounts in the Production OU first, but must be completely blocked from applying to any accounts in the Development OU to ensure development teams pay standard On-Demand rates for budgeting.
* The AWS Cost and Usage Report (CUR) is written to an Amazon S3 bucket in the Shared Services account. Data analysts in the application and testing accounts must run Amazon Athena queries in their local accounts to read this billing data directly. The S3 bucket must be encrypted at rest, and the architecture must support secure cross-account queries.

Which combination of actions will meet these requirements?

  1. Configure AWS Resource Access Manager (RAM) in the Shared Services account to share the subnets, enabling organization sharing and selecting the Production and Development OUs as principals. In the AWS Billing console of the Management account, enable discount sharing, but selectively turn off Reserved Instance (RI) and Savings Plans (SP) sharing for all individual accounts in the Development OU. Encrypt the S3 bucket in the Shared Services account using a Customer Managed Key (CMK) in AWS KMS, configure the KMS key policy to allow the IAM roles in the application and testing accounts to perform kms:Decrypt and kms:GenerateDataKey, and update the S3 bucket policy to grant s3:GetObject and s3:ListBucket permissions to those cross-account roles.Answer
  2. B
    Configure AWS Resource Access Manager (RAM) in the Shared Services account to share the subnets, selecting the Production and Development OUs as principals. Attach a Service Control Policy (SCP) to the Development OU that denies the savingsplans:Apply and savingsplans:Purchase actions to prevent development accounts from utilizing the Management account's Savings Plan. Encrypt the S3 bucket in the Shared Services account using the AWS managed key (aws/s3), and configure the S3 bucket policy to grant s3:GetObject and s3:ListBucket permissions to the IAM roles in the application and testing accounts.
  3. C
    Enable subnet sharing by attaching a resource-based IAM policy to the VPC subnets in the Shared Services account that allows access from the application and testing accounts. In the AWS Billing console of the Management account, turn off discount sharing globally, and write a custom billing rule in AWS Billing Conductor to manually allocate the Compute Savings Plan discounts to the Production OU accounts. Encrypt the S3 bucket in the Shared Services account using a Customer Managed Key (CMK) in AWS KMS, configure the KMS key policy to trust the application and testing accounts, and rely on local IAM permissions for cross-account S3 access without modifying the S3 bucket policy.
  4. D
    Configure AWS Resource Access Manager (RAM) in the Shared Services account to share the subnets. Do not enable sharing within AWS Organizations; instead, send individual RAM resource share invitations to each account in the Production and Development OUs. In the AWS Billing console of the Management account, disable discount sharing globally. Have each production account purchase its own local Savings Plan, while keeping development accounts on On-Demand. Encrypt the Shared Services S3 bucket using the AWS managed key (aws/s3) and create a cross-account IAM role in the Shared Services account that application and testing accounts must assume to execute their Athena queries.

Answer

Configure AWS Resource Access Manager (RAM) in the Shared Services account to share the subnets, enabling organization sharing and selecting the Production and Development OUs as principals. In the AWS Billing console of the Management account, enable discount sharing, but selectively turn off Reserved Instance (RI) and Savings Plans (SP) sharing for all individual accounts in the Development OU. Encrypt the S3 bucket in the Shared Services account using a Customer Managed Key (CMK) in AWS KMS, configure the KMS key policy to allow the IAM roles in the application and testing accounts to perform kms:Decrypt and kms:GenerateDataKey, and update the S3 bucket policy to grant s3:GetObject and s3:ListBucket permissions to those cross-account roles.
The correct solution uses AWS RAM to share the subnets directly with the target OUs (Production and Development OUs) after enabling Organization sharing. It selectively disables RI/SP discount sharing in the Management account's Billing Preferences for the development accounts, satisfying the business requirement to keep development workloads on On-Demand rates while maximizing production savings. Finally, it uses a Customer Managed Key (CMK) in AWS KMS to allow cross-account access, granting permissions via both the KMS key policy and S3 bucket policy so that application accounts can query the bucket directly using Amazon Athena.

Step-by-Step Solution

1
Configure AWS RAM for subnet sharing.
VPC subnets from the central Shared Services account are securely shared with the application and testing accounts without requiring manual invitations, by targeting the OUs as principals and enabling Organization sharing.
AWS RAM allows sharing VPC subnets across accounts in an AWS Organization to build a standardized network topology.
2
Configure Billing preferences for Selective Savings Plans sharing.
The Compute Savings Plan discount is applied to the Production accounts while the Development accounts are billed at the standard On-Demand rates.
AWS Organizations consolidated billing preferences allow the management account to disable discount sharing for specific member accounts to satisfy chargeback/cost segregation requirements.
3
Set up secure S3 bucket and KMS Key Policies.
Data analysts can query the central S3 bucket directly from their local accounts using Amazon Athena.
AWS-managed keys (aws/s3) do not support cross-account sharing because their key policies cannot be modified. A Customer Managed Key (CMK) is required, along with S3 bucket policies that allow cross-account access.

Key Concept

Multi-account resource sharing via AWS RAM, consolidated billing discount sharing management, and cross-account KMS/S3 access controls.
Estimated Time:2m 30s
Rate this question