当我尝试为 AWS Organizations 创建或删除 AWS Config 规则时,收到 CREATE_FAILED 或 DELETE_FAILED 错误。我如何排查组织配置规则的问题?
解决方法
导致组织配置规则不起作用的问题有很多,包括权限、成员账户处于非活动状态或缺少配置记录器。
注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请确保您正在运行最新版本的 AWS CLI。
要解决组织配置规则错误,首先运行以下命令以获取成员账户规则失败和成功状态详细信息。然后,将 your-rule-name 替换为组织配置规则名称。该命令将识别规则失败的特定成员账户。
aws configservice get-organization-config-rule-detailed-status --organization-config-rule-name your-rule-name
查看输出 ErrorCode 和 ErrorMessage,然后按以下问题排查步骤操作:
aws organizations list-accounts --query 'Accounts[*].[Id, Status]' --output table
aws organizations list-delegated-administrators --service-principal=config-multiaccountsetup.amazonaws.com
- 如果您收到 OrganizationAccessDeniedException 错误,请验证您是否拥有所需的权限。AWS Config 的 AWS Identity and Access Management(IAM)角色必须拥有 PutConfigRule、PutOrganizationConfigRule 和 DeleteOrganizationConfigRule 权限才能创建和删除组织配置规则。
- 如果您收到 ResourceInUseException 错误,请查看错误消息以确定原因。如果错误消息指示修复操作与规则关联,则解析修复操作。如果错误消息指示规则状态不是 CREATE_SUCCESSFUL,请验证 AWS Config 成员账户 IAM 角色是否包含 DeleteConfigRule 权限。
自定义组织配置规则创建
如果 Lambda 函数资源策略不允许 AWS Config 服务主体调用它,请运行如下 add-permission 命令来提供权限。将 function-name 替换为 Lambda 函数名称,将 Region 替换为 AWS 区域,以及将 source-account 替换为管理账户 ID。
aws lambda add-permission --function-name --region --action "lambda:InvokeFunction" --principal config.amazonaws.com --source-account --statement-id Allow
**注意:**要为组织中的多个成员账户授予权限,必须为每个账户运行该命令。将 source-account 替换为每个成员账户 ID。
相关信息
get-organization-config-rule-detailed-status
list-accounts
list-delegated-administrators
为什么我的 AWS Config 规则不起作用?