了解 API 的操作模式 - Amazon 账户管理
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

了解 API 的操作模式

与 Amazon Web Services 账户 属性配合使用的 API 操作始终采用以下两种操作模式之一:

  • 独立上下文 — 此模式用于某个账户用户或角色访问或更改同一账户中的账户属性时。如果在调用账户管理 Amazon CLI 或 Amazon SDK 操作时包含 AccountId 参数,则会自动使用独立上下文模式。

  • 组织上下文 — 此模式用于组织中某个账户用户或角色访问或更改同一组织中不同成员账户的账户属性时。如果在调用账户管理 Amazon CLI 或 Amazon SDK 操作时确实包含了 AccountId 参数,则会自动使用组织上下文模式。此模式下,只能通过组织的管理账户或账户管理的委托管理员账户调用操作。

Amazon CLI 和 Amazon SDK 操作可以在独立上下文或组织上下文中运行。

  • 如果您包含 AccountId 参数,则此操作运行在独立上下文中,并自动将请求应用到您用于发出请求的账户。无论账户是否为组织的成员账户,都是如此。

  • 如果确实包含了 AccountId 参数,则此操作运行在组织上下文中,并且此操作还在指定的组织账户上运行。

    • 如果调用此操作的账户是管理账户或账户管理服务的委托管理员账户,则可以在 AccountId 参数中指定该组织的任何成员账户来更新指定的账户。

    • 组织中唯一可以调用备用联系人操作并在 AccountId 参数中指定其自有账号的账户是指定为账户管理服务委托管理员账户的账户。其他任何账户,包括管理账户,都会收到 AccessDenied 异常。

  • 如果在独立模式下运行操作,则必须获准使用 IAM 策略运行该操作,该策略包含的 Resource 元素或者为允许所有资源的 "*",或者为使用独立账户语法的 ARN

  • 如果在组织模式下运行操作,则必须获准使用 IAM 策略运行该操作,该策略包含的 Resource 元素或者为允许所有资源的 "*",或者为使用组织成员账户语法的 ARN

授予更新账户属性的权限

与大多数 Amazon 操作一样,您可以使用 IAM 权限策略授予添加、更新或删除 Amazon Web Services 账户 的账户属性的权限。在向 IAM 主体(用户或角色)附加 IAM 权限策略时,可以指定主体可以在哪些资源上以及在什么条件下执行哪些操作。

以下是创建权限策略时针对账户管理的一些注意事项。

Amazon Web Services 账户 的 Amazon 资源名称格式

  • 根据要引用的账户是独立账户还是组织账户,可以将其包含在策略语句的 resource 元素中的 Amazon Web Services 账户 的 Amazon 资源名称 (ARN) 会呈现不同的构造。请参阅 了解 API 的操作模式 中的上一部分。

    • 独立账户的账户 ARN:

      arn:aws:account::{AccountId}:account

      在不包括 AccountID 参数的独立模式下运行账户属性操作时,必须使用此种格式。

    • 组织成员账户的账户 ARN:

      arn:aws:account::{ManagementAccountId}:account/o-{OrganizationId}/{AccountId}

      在包括 AccountID 参数的组织模式下运行账户属性操作时,必须使用此种格式。

IAM 策略的上下文键

账户管理服务还提供多个账户管理服务专属条件键,可对您授予的权限进行精细控制。

account:AccountResourceOrgPaths

上下文键 account:AccountResourceOrgPaths 允许指定一条通过组织层次结构到达特定组织单位 (OU) 的路径。只有该 OU 所包含的成员账户才符合条件。以下示例片段将策略限制为仅适用于两个指定 OU 中任一 OU 的账户。

由于 account:AccountResourceOrgPaths 是多值字符串类型,因此必须使用 ForAnyValueForAllValues 多值字符串运算符。另请注意,条件键的前缀是 account,即使您引用的是通往组织中 OU 的路径。

"Condition": { "ForAnyValue:StringLike": { "account:AccountResourceOrgPaths": [ "o-aa111bb222/r-a1b2/ou-a1b2-f6g7h111/*", "o-aa111bb222/r-a1b2/ou-a1b2-f6g7h222/*" ] } }

account:AccountResourceOrgTags

上下文键 account:AccountResourceOrgTags 允许您引用可以附加到组织账户的标签。标签是可以用来对账户中资源进行分类和标记的键值字符串对。有关更多信息,请参阅《Amazon Resource Groups 用户指南》中的标签编辑器。有关在基于属性的访问控制策略中使用标签的信息,请参阅《IAM 用户指南》中的什么是 Amazon 的 ABAC。以下示例片段将策略限制为仅适用于组织中具有键 project 和值 bluered 的标签的账户。

由于 account:AccountResourceOrgTags 是多值字符串类型,因此必须使用 ForAnyValueForAllValues 多值字符串运算符。另请注意,条件键的前缀是 account,即使您引用的是组织成员账户上的标签。

"Condition": { "ForAnyValue:StringLike": { "account:AccountResourceOrgTags/project": [ "blue", "red" ] } }
注意

您只能将标签附加到组织中的账户。您无法将标签附加到独立 Amazon Web Services 账户。