跳至内容

为什么我无法在 AWS Config 中为 AWS Organizations 创建或删除配置规则?

2 分钟阅读
0

当我尝试为 AWS Organizations 创建或删除 AWS Config 规则时,我收到 CREATE_FAILED 或 DELETE_FAILED 错误。

简短描述

各种问题可能导致组织配置规则不起作用,包括以下示例:

  • 权限
  • 非活动的成员账户
  • 缺少配置记录器

要解决组织配置规则错误,请完成以下步骤:

  1. 查找成员账户规则的状态详细信息。
  2. 对规则失败的原因进行故障排除。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

查找成员账户规则的状态详细信息

要查找成员账户规则的失败和成功状态详细信息,请运行 get-organization-config-rule-detailed-status 命令:

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

**注意:**请将 your-rule-name 替换为您的组织配置规则名称。

查看输出中的 ErrorCodeErrorMessage,以获取有关规则失败原因的详细信息。

对规则失败的原因进行故障排除

验证成员账户是否处于活动状态

要验证所有成员账户是否处于活动状态,请运行 list-accounts 命令:

aws organizations list-accounts --query 'Accounts[*].[Id, Status]' --output table

为成员账户配置 AWS Config

要为每个成员账户配置 AWS Config,请使用控制台AWS CLIAWS CloudFormation。为所有成员账户配置 AWS Config 后,运行 put-organization-config-rule 以再次部署该规则。

查看您的事件日志

打开 AWS CloudTrail 控制台,然后从导航窗格中选择 Event history(事件历史记录)。要筛选日志,请从下拉列表中选择 Event name(事件名称),然后在搜索字段中输入 PutOrganizationConfigRuleDeleteOrganizationConfigRule。查看筛选后的日志结果中是否存在 OrganizationAccessDeniedException 错误。

更新委派管理员成员账户

您必须从 AWS Organizations 管理账户或从委派管理员成员账户发起调用。如果您在这些账户之外发起调用(例如 PutOrganizationConfigRule APIDeleteOrganizationConfigRule API),则调用将失败。

要识别委派管理员成员账户,请运行 list-delegated administrators 命令:

aws organizations list-delegated-administrators --service-principal=config-multiaccountsetup.amazonaws.com

更新您的权限

如果您收到 OrganizationAccessDeniedException 错误,则您可能没有所需的权限。AWS Config 的 AWS Identity and Access Management (IAM) 角色必须包含以下权限才能创建和删除组织配置规则:

  • PutConfigRule
  • PutOrganizationConfigRule
  • DeleteOrganizationConfigRule

有关详细信息,请参阅分配给 AWS Config 的 IAM 角色的权限

查看错误消息

如果您收到 ResourceInUseException 错误,请查看错误消息以确定原因。

  • 如果错误消息表明某个修复操作与规则相关联,请解决该修复操作。
  • 如果错误消息表明规则状态不是 CREATE_SUCCESSFUL,请验证 AWS Config 成员账户的 IAM 角色是否包含 DeleteConfigRule 权限。

创建自定义组织配置规则

如果 AWS Lambda 函数资源策略不允许 AWS Config 服务主体调用该策略,请运行 add-permission 命令来提供权限:

aws lambda add-permission --function-name function-name --region region --action "lambda:InvokeFunction" --principal config.amazonaws.com --source-account source-account --statement-id Allow

**注意:**请将 function-name 替换为您的 Lambda 函数名称,将 region 替换为您的 AWS 区域,将 source-account 替换为管理账户 ID。

要为组织中的多个成员账户授予权限,请对每个成员账户运行此命令。请将 source-account 替换为每个成员账户 ID。

相关信息

为什么我的 AWS Config 规则不起作用?

AWS 官方已更新 9 个月前