托管策略与内联策略 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

托管策略与内联策略

如果在 IAM 中为身份设置权限,您必须决定是使用 Amazon 托管式策略、客户管理型策略还是内联策略。以下主题更详细说明了每种基于身份的策略以及何时使用这些策略。

Amazon托管策略

Amazon 托管策略 是由 Amazon 创建和管理的独立策略。独立策略意味着策略有自身的 Amazon 资源名称(ARN),其中包含策略名称。例如,arn:aws:iam::aws:policy/IAMReadOnlyAccess 是一个 Amazon 托管策略。有关 ARN 的更多信息,请参阅 IAM ARN。有关适用于 Amazon Web Services 服务 的 Amazon 托管式策略的列表,请参阅 Amazon 托管式策略

借助 Amazon 托管式策略,您可以方便地为用户、IAM 组和角色分配适当的权限。它比自己编写策略更快,并且包括许多常见使用案例的权限。

您不能更改 Amazon 托管策略中定义的权限。Amazon 有时会更新 Amazon 托管策略中定义的权限。在 Amazon 执行此操作时,更新会影响策略附加到的所有主体实体(IAM 用户、IAM 组和 IAM 角色)。在推出新的 Amazon 服务或为现有服务提供新的 API 调用时,Amazon 很可能会更新 Amazon 托管式策略。例如,名为 ReadOnlyAccess 的 Amazon 托管策略提供针对所有 Amazon Web Services 服务 和资源的只读访问权限。在 Amazon 推出新的服务时,Amazon 将更新 ReadOnlyAccess 策略,以便为新服务添加只读权限。更新的权限会应用于策略附加到的所有主体实体。

完全访问 Amazon 托管策略:这些策略通过授予对服务的完全访问权限来定义服务管理员的权限。示例包括:

高级用户 Amazon 托管策略:这些策略提供对 Amazon Web Services 服务 和资源的完全访问权限,但不允许管理用户和 IAM 组。示例包括:

部分访问 Amazon 托管策略:这些策略提供对 Amazon Web Services 服务 的特定访问级别,但不允许权限管理访问级别权限。示例包括:

工作职能 Amazon 托管策略:这些策略与 IT 行业中常用的工作职能密切相关,便于为这些工作职能授予权限。使用工作职能策略的一个重要优势是,在推出新的服务和 API 操作时,Amazon 对这些策略进行维护和更新。例如,AdministratorAccess 工作职能提供对 Amazon 中的每个服务和资源的完全访问权限和权限委派。我们建议您仅对账户管理员使用此策略。对于需要对 IAM 和 Organizations 的有限访问权限以及对其他每个服务的完全访问权限的高级用户,请使用 PowerUserAccess 工作职能。有关工作职能策略的列表和说明,请参阅工作职能的 Amazon 托管策略

下图对 Amazon 托管策略进行说明。该图显示三个 Amazon 托管式策略:AdministratorAccessPowerUserAccessAmazonCloudTrail_ReadOnlyAccess。请注意,单个 Amazon 托管策略可以附加到不同 Amazon Web Services 账户 中的主体实体,并且可以附加到单个 Amazon Web Services 账户 中的不同主体实体。

Amazon 托管策略示意图

客户托管策略

您可以在自己的 Amazon Web Services 账户 中创建可附加到主体实体(IAM 用户、IAM 组和 IAM 角色)的独立策略。您可以为特定使用案例创建这些客户管理型策略,并且可以根据需要随时更改和更新它们。与 Amazon 托管式策略一样,当您将策略附加到主体实体时,会向实体授予策略中定义的权限。当您更新策略中的权限时,这些更改将应用于策略所附加的所有主体实体。

创建客户托管策略的理想方式是:首先复制一个现有 Amazon 托管策略。这样从一开始您就可以确信策略是正确的,只需根据您的环境进行自定义即可。

下面的示意图对客户托管策略进行说明。每个策略都是 IAM 中的一个实体,有自己的 Amazon Resource Name (ARN),其中包含策略名称。请注意,同一策略可以附加到多个主体实体;例如,同一 DynamoDB-books-app 策略附加到两个不同的 IAM 角色。

有关更多信息,请参阅 使用客户管理型策略定义自定义 IAM 权限

客户托管策略示意图

内联策略

内联策略是为单个 IAM 身份(用户、用户组或角色)创建的策略。内联策略维持策略与身份之间严格的一对一关系。当您删除身份时,它们将会被删除。您可以创建策略并将其嵌入到身份中,无论是在创建身份时还是之后。如果一个策略可以应用于多个实体,则最好使用托管式策略。

下面的示意图对内联策略进行说明。每个策略都是用户、组或角色的固有部分。请注意,两个角色包含同一策略(DynamoDB-books-app 策略),但是它们不共享单个策略。每个角色都有自己的策略副本。

内联策略示意图