AWS Certified Developer – Associate — Question 74
A developer has code that is stored in an Amazon S3 bucket. The code must be deployed as an AWS Lambda function across multiple accounts in the same AWS Region as the S3 bucket. An AWS CloudFormation template that runs for each account will deploy the Lambda function.
What is the MOST secure way to allow CloudFormation to access the Lambda code in the S3 bucket?
Answer options
- A. Grant the CloudFormation service role the S3 ListBucket and GetObject permissions. Add a bucket policy to Amazon S3 with the pnncipal of "AWS": [account numbers].
- B. Grant the CloudFormation service role the S3 GetObject permission. Add a bucket policy to Amazon S3 with the principal of "*".
- C. Use a service-based link to grant the Lambda function the S3 ListBucket and GetObject permissions by explicitly adding the S3 bucket’s account number in the resource.
- D. Use a service-based link to grant the Lambda function the S3 GetObject permission. Add a resource of "*" to allow access to the S3 bucket.
Correct answer: A
Explanation
The correct answer is A because it provides the necessary permissions for the CloudFormation service role while also specifying a restricted bucket policy that limits access to designated accounts. Option B is less secure as it allows access to anyone with the '*' principal, which could lead to unauthorized access. Options C and D do not grant the CloudFormation service role the required permissions directly, making them unsuitable.