基于身份的策略示例 Amazon Organizations - Amazon Organizations
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

基于身份的策略示例 Amazon Organizations

默认情况下,用户和角色无权创建或修改 Organizations 资源。他们也无法通过使用来执行任务 Amazon Web Services Management Console, Amazon Command Line Interface (Amazon CLI),或 Amazon API。要授予用户对其所需资源执行操作的权限,IAM管理员可以创建IAM策略。然后,管理员可以将IAM策略添加到角色中,用户可以代入这些角色。

要了解如何使用这些示例策略文档创建IAM基于身份的JSON策略,请参阅IAM用户指南中的创建IAM策略

有关 Organizations 定义的操作和资源类型(包括每种资源类型的格式)的详细信息,请参阅的操作、资源和条件键 ARNs Amazon Organizations在《服务授权参考》中。

策略最佳实践

基于身份的策略决定了某人是否可以在您的账户中创建、访问或删除 Organizations 资源。这些操作可能会使您付出代价 Amazon Web Services 账户。 创建或编辑基于身份的策略时,请遵循以下准则和建议:

  • 开始使用 Amazon 托管策略并转向最低权限权限 — 要开始向用户和工作负载授予权限,请使用 Amazon 为许多常见用例授予权限的托管策略。它们在你的 Amazon Web Services 账户。 我们建议您通过定义来进一步减少权限 Amazon 特定于您的用例的客户托管政策。有关更多信息,请参阅 Amazon 托管策略Amazon 《IAM用户指南》中工作职能的托管策略。

  • 应用最低权限权限-使用IAM策略设置权限时,仅授予执行任务所需的权限。为此,您可以定义在特定条件下可以对特定资源执行的操作,也称为最低权限许可。有关使用应用权限IAM的更多信息,请参阅IAM用户指南IAM中的策略和权限

  • 使用IAM策略中的条件进一步限制访问权限-您可以在策略中添加条件以限制对操作和资源的访问权限。例如,您可以编写一个策略条件来指定所有请求都必须使用发送SSL。如果通过特定条件使用服务操作,则也可以使用条件来授予对服务操作的访问权限 Amazon Web Services 服务之外的压缩算法(例如 Amazon CloudFormation。 有关更多信息,请参阅《IAM用户指南》中的IAMJSON策略元素:条件

  • 使用 A IAM ccess Analyzer 验证您的IAM策略以确保权限的安全性和功能性 — A IAM ccess Analyzer 会验证新的和现有的策略,以便策略符合IAM策略语言 (JSON) 和IAM最佳实践。IAMAccess Analyzer 提供了 100 多项策略检查和可行的建议,可帮助您制定安全和实用的策略。有关更多信息,请参阅《IAM用户指南》中的 IAMAccess Analyzer 策略验证

  • 需要多因素身份验证 (MFA)-如果您的场景需要IAM用户或 root 用户 Amazon Web Services 账户,请打开MFA以提高安全性。要要求MFA何时调用API操作,请在策略中添加MFA条件。有关更多信息,请参阅《IAM用户指南》中的配置MFA受保护的API访问权限

有关中最佳做法的更多信息IAM,请参阅《IAM用户指南》IAM中的安全最佳实践

使用 Organistans 控制台

要访问 Amazon Organizations 控制台,您必须拥有一组最低权限。这些权限必须允许您列出和查看有关您的 Organizations 资源的详细信息 Amazon Web Services 账户。 如果您创建的基于身份的策略比所需的最低权限更严格,则控制台将无法按预期运行,适用于使用该策略的实体(用户或角色)。

您无需为仅拨打控制台的用户设置最低控制台权限 Amazon CLI 或者 Amazon API。相反,只允许访问与他们尝试执行的API操作相匹配的操作。

为确保用户和角色仍然可以使用 Organizations 控制台,还需要附上 Organizations AWSOrganizationsFullAccessAWSOrganizationsReadOnlyAccess Amazon 针对实体的托管策略。有关更多信息,请参阅《用户指南》中的向IAM用户添加权限

允许用户查看他们自己的权限

此示例说明如何创建允许IAM用户查看附加到其用户身份的内联和托管策略的策略。此策略包括通过控制台或以编程方式使用控制台完成此操作的权限 Amazon CLI 或者 Amazon API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

将全部管理员权限授予用户

您可以创建一个授予全部权限的IAM策略 Amazon Organizations 组织中IAM用户的管理员权限。您可以使用IAM控制台中的JSON策略编辑器执行此操作。

使用JSON策略编辑器创建策略
  1. 登录 Amazon Web Services Management Console 然后打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在左侧的导航窗格中,选择策略

    如果这是您首次选择策略,则会显示欢迎访问托管式策略页面。选择开始使用

  3. 在页面的顶部,选择 Create Policy(创建策略)

  4. 在 “策略编辑器” 部分中,选择JSON选项。

  5. 输入以下JSON策略文档:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "organizations:*", "Resource": "*" } }
  6. 选择下一步

    注意

    您可以随时在 “可视化” 和 “JSON编辑器” 选项之间切换。但是,如果您进行更改或在可视化编辑器中选择 “下一步”,则IAM可能会重构您的策略以针对可视化编辑器对其进行优化。有关更多信息,请参阅《IAM用户指南》中的策略重组

  7. 查看并创建页面上,为您要创建的策略输入策略名称描述(可选)。查看此策略中定义的权限以查看策略授予的权限。

  8. 选择创建策略可保存新策略。

要了解有关创建IAM策略的更多信息,请参阅IAM用户指南中的创建IAM策略

按操作授予有限访问权

如果要授予有限权限而不是完全权限,则可以创建一个策略,在权限策略的Action元素中列出要允许的个人IAM权限。如以下示例中所示,您可以使用通配符 (*) 字符来仅授予 Describe*List* 权限,这实际上提供对组织的只读访问权限。

注意

在服务控制策略 (SCP) 中,Action元素中的通配符 (*) 只能单独使用或在字符串末尾使用。它不能出现在字符串的开头或中间部分。因此,"servicename:action*"是有效的,但是"servicename:*action"和在中"servicename:some*action"都是无效的SCPs。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "organizations:Describe*", "organizations:List*" ], "Resource": "*" } }

有关IAM策略中所有可供分配的权限的列表,请参阅定义的操作 Amazon 《服务授权参考中的 Organizations

授予对特定资源的访问权限

除了限制对特定操作的访问权之外,您还可以限制对组织中特定实体的访问权。前面部分示例中的 Resource 元素均指定通配符(“*”),这意味着“操作可以访问的任意资源”。相反,您可以将 “*” 替换为要允许访问的特定实体的亚马逊资源名称 (ARN)。

示例:将权限授予单个 OU

以下策略的第一条语句允许IAM用户对整个组织进行读取访问,但第二条语句允许用户执行 Amazon Organizations 仅在单个指定的组织单位 (OU) 内执行管理操作。这不适用于任何孩子OUs。未授予账单访问权。请注意,这不会授予您对的管理权限 Amazon Web Services 账户 在 OU 中。它只授予执行权限 Amazon Organizations 对指定 OU 内的账户进行操作:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "organizations:Describe*", "organizations:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "organizations:*", "Resource": "arn:aws:organizations::<masterAccountId>:ou/o-<organizationId>/ou-<organizationalUnitId>" } ] }

你可以从 OU 和组织那里获得 IDs Amazon Organizations 控制台或通过调用 List*APIs. 您应用到此策略的用户或组可以在指定 OU 中直接包含的任何实体上执行任何操作("organizations:*")。OU 由 Amazon 资源名称 (ARN) 标识。

有关各种资源的更多信息,请参阅定义的资源类型 ARNs Amazon Organizations在《服务授权参考》中。

向有限服务委托人授予允许可信访问的功能

您可以使用策略语句的 Condition 元素对策略语句匹配的情况做进一步限制。

示例:授予对一个指定服务允许可信访问的权限

以下语句显示如何将允许可信访问的功能局限于您指定的哪些服务。如果用户尝试使用API与的服务主体不同的服务主体调用 Amazon IAM Identity Center,此政策不匹配,请求被拒绝:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "organizations:EnableAWSServiceAccess", "Resource": "*", "Condition": { "StringEquals" : { "organizations:ServicePrincipal" : "sso.amazonaws.com" } } } ] }

有关各种资源的更多信息,请参阅定义的资源类型 ARNs Amazon Organizations在《服务授权参考》中。