为什么我无法创建或删除组织配置规则?

上次更新时间:2021 年 5 月 28 日

当我尝试为 AWS Organizations 创建或删除 AWS Config 规则时,收到 CREATE_FAIED 或 DELETE_FAILEXY 错误。我如何排查组织配置规则的问题?

解决方法

导致组织配置规则不起作用的问题有很多,包括权限、成员账户处于非活动状态或缺少配置记录器。

注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请确保您正在运行最新版本的 AWS CLI

要解决组织配置规则错误,先运行以下命令以获取成员账户规则失败和成功状态详细信息。将 your-rule-name 替换为组织配置规则名称。该命令将识别规则失败的特定成员账户。

aws configservice get-organization-config-rule-detailed-status --organization-config-rule-name your-rule-name

查看输出 ErrorCodeErrorMessage,然后按以下问题排查步骤操作:

  • 运行以下 AWS CLI 命令或使用 Organizations 控制台验证所有成员账户状态是否为 Active (活动)
aws organizations list-accounts --query 'Accounts[*].[Id, Status]' --output table
  • 确认已为每个成员账户设置 AWS Config。您可以使用控制台AWS CLIAWS CloudFormation 为特定成员账户手动设置 AWS Config。为所有成员账户设置 AWS Config 后,再次部署规则
  • 打开 CloudTrail 控制台,然后从导航窗格中选择 Event history (事件历史记录)。要过滤日志,请从下拉列表中选择 Event name (事件名称),然后在搜索字段中输入 PutOrganizationConfigRuleDeleteOrganizationConfigRule。查看过滤的日志结果以查找 OrganizationAccessDeniedException 错误。
  • 验证您是从 Organizations 主账户还是从委派管理员成员账户调用 PutOrganizationConfigRule APIDeleteOrganizationConfigRule API。从主账户运行以下命令以识别委派管理员成员账户。
aws organizations list-delegated-administrators --service-principal=config-multiaccountsetup.amazonaws.com
  • 如果您收到 OrganizationAccessDeniedException 错误,请验证您是否拥有所需的权限。AWS Config 的 AWS Identity and Access Management (IAM) 角色必须拥有 PutConfigRulePutOrganizationConfigRuleDeleteOrganizationConfigRule 权限才能创建和删除组织配置规则。
  • 如果您收到 ResourceInUseException 错误,请查看错误消息以确定原因。如果错误消息指示修复操作与规则关联,则解析修复操作。如果错误消息指示规则状态不是 CREATE_SUPPORT,请验证 AWS Config 成员账户 IAM 角色是否包含 DeleteConfigRule 权限。

自定义组织配置规则创建

要创建自定义组织配置规则,AWS Config IAM 角色必须拥有调用 Lambda 函数的权限。如果缺少所需的权限,请运行以下 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