An enterprise uses AWS Organizations to manage a multi-account environment. The central Platform DevOps team maintains configuration baselines using Ansible playbooks stored in a private GitHub repository. To automate configuration management and enforce these baselines on Amazon EC2 instances across multiple workload accounts, the team uses AWS Systems Manager State Manager associations. To pull the playbooks from the private repository, State Manager requires a GitHub Personal Access Token (PAT). The DevOps team stores the GitHub PAT as a secret in AWS Secrets Manager within a centralized Shared Services account. They configure the secret using the default AWS-managed KMS key (aws/secretsmanager). The EC2 instances in the workload accounts are assigned an IAM instance profile with a policy that allows the secretsmanager:GetSecretValue action on the secret's ARN. When the State Manager association executes in the workload accounts, the execution fails on the EC2 instances, and the Systems Manager runbook log displays an AccessDeniedException error related to AWS KMS decryption. Which of the following actions should the Solutions Architect take to resolve this issue and enable successful configuration management?
- AUpdate the workload accounts' IAM instance profile policies to explicitly grant the kms:Decrypt action targeting the default AWS-managed KMS key (aws/secretsmanager) ARN in the Shared Services account, and configure the secret's resource policy to trust the workload account IDs.
- BCreate and attach a Service Control Policy (SCP) to the Organizational Unit (OU) containing the workload accounts that explicitly permits the secretsmanager:GetSecretValue and kms:Decrypt actions, ensuring the permissions are inherited by the IAM roles without modifying local KMS or secret resource policies.
- Re-create the secret in the Shared Services account using a Customer Managed Key (CMK). Configure the CMK key policy to allow kms:Decrypt permissions for the workload accounts' IAM roles. Add a resource-based policy to the Secrets Manager secret that permits secretsmanager:GetSecretValue for the workload IAM roles, and update the workload accounts' IAM instance profile policies to allow kms:Decrypt on the CMK.Answer
- DEnable AWS CloudFormation drift detection on the workload stacks to identify modified local configuration parameters, trigger an SSM Automation runbook to restore the SSM Agent configuration to its baseline, and configure AWS CodeDeploy to perform a linear deployment of the Ansible playbook.