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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

了解 API 的操作模式

使用的 API 操作Amazon Web Services 账户的属性始终在以下两种操作模式之一中起作用:

  • 独立上下文— 当账户中的用户或角色访问或更改账户属性时,将使用此模式同一账户. 独立上下文模式在您执行以下操作时自动使用Don't加入AccountId当你调用其中一个账户管理时参数Amazon CLI要么Amazon开发工具包操作。

  • Organizations 上下文— 当组织中一个账户中的用户或角色访问或更改同一组织中其他成员账户的账户属性时,将使用此模式。在执行以下操作时,将自动使用组织上下文模式:加入AccountId当你调用其中一个账户管理时参数Amazon CLI要么Amazon开发工具包操作。在此模式下,您只能从组织的管理账号或账户管理的委派管理员账户调用操作。

这些区域有:Amazon CLI和AmazonSDK 操作可以在独立环境或组织上下文中运行。

  • 如果您Don't加入AccountId参数,则操作将在独立上下文中运行,并自动将请求应用于您用于发出请求的账户。不管账户是否为组织的成员,都是如此。

  • 如果你确实包含了AccountId参数,则操作将在Organizations 上下文中运行,并且操作在指定的 “组织” 帐户上运行。

    • 如果调用操作的账户是 Account Management 服务的管理账户或委派的管理员账户,则您可以在AccountId参数以更新指定的账户。

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

  • 如果您在独立模式下运行操作,则必须允许您使用包含Resource任一的元素"*"允许所有资源,或者使用独立账户语法的 ARN.

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

授予更新账户属性的权限

和大多数人一样Amazon操作,您授予添加、更新或删除帐户属性的权限Amazon Web Services 账户通过使用IAM 权限策略. 当您将 IAM 权限策略附加到 IAM 委托人(用户或角色)可在什么和条件下对哪些资源进行哪些资源下对哪些资源进行哪些资源下对哪些资源进行哪些资源下对哪些资源进行哪些资源下对哪些资源进行哪些资源下对哪些资源进行哪些资源下对哪些资源

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

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

  • 这些区域有:Amazon 资源名称 (ARN)换一个Amazon Web Services 账户你可以将其包含在resource根据要引用的账户是独立账户还是组织中的账户,策略声明的元素的构造会有所不同。请参阅上一部分了解 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 中任一的账户。

由于account:AccountResourceOrgPaths是多值字符串类型,则必须使用ForAnyValue要么ForAllValues多值字符串运算符. 另外,请注意,条件键的前缀是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用户指南. 有关在基于属性的访问控制策略中使用标签的信息,请参阅什么是适用于的 ABAC?Amazon中的IAM 用户指南. 以下示例代码段将策略限制为仅适用于组织中具有带密钥的标签的账户project和任一的值blue要么red.

由于account:AccountResourceOrgTags是多值字符串类型,则必须使用ForAnyValue要么ForAllValues多值字符串运算符. 另外,请注意,条件键的前缀是account,即使你引用的是组织成员账户上的标签。

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

您只能将标签附加到组织中的一个账户。你不能将标签附加到独立的Amazon Web Services 账户.