使用基于身份的策略(IAM策略) AWS Directory Service - AWS Directory Service

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

使用基于身份的策略(IAM策略) AWS Directory Service

本主题提供了基于身份的策略示例,在这些策略中,账户管理员可以将权限策略附加到IAM身份(用户、群组和角色)。

重要

我们建议您先阅读介绍性主题,这些主题解释了管理访问权限的基本概念和选项 AWS Directory Service 资源的费用。有关更多信息,请参阅 管理您的访问权限概述 AWS Directory Service 资源

本主题的各个部分涵盖以下内容:

下面介绍权限策略示例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDsEc2IamGetRole", "Effect": "Allow", "Action": [ "ds:CreateDirectory", "ec2:RevokeSecurityGroupIngress", "ec2:CreateNetworkInterface", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:CreateSecurityGroup", "ec2:RevokeSecurityGroupEgress", "ec2:DeleteSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "iam:GetRole" ], "Resource": "*" }, { "Sid": "WarningAllowsCreatingRolesWithDirSvcPrefix", "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::111122223333:role/DirSvc*" }, { "Sid": "AllowPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "cloudwatch.amazonaws.com" } } } ] }

策略中的三个语句按如下方式授予权限:

  • 第一条语句授予创建 AWS Directory Service 目录。因为 AWS Directory Service 不支持资源级别的权限,该策略将通配符 (*) 指定为Resource值。

  • 第二条语句授予访问IAM操作的权限,因此 AWS Directory Service 可以代表你读取和创建IAM角色。Resource值末尾的通配符 (*) 表示该语句允许对任何IAM角色IAM执行操作。要将此权限限制为特定角色,请将资源ARN中的通配符 (*) 替换为特定的角色名称。有关更多信息,请参阅IAM操作

  • 第三条语句授予对 Amazon 中一组特定资源的必要权限EC2,以允许 AWS Directory Service 创建、配置和销毁其目录。Resource值末尾的通配符 (*) 表示该语句允许对任何EC2资源或子资源EC2执行操作。要将此权限限制为特定角色,请将资源ARN中的通配符 (*) 替换为特定的资源或子资源。有关更多信息,请参阅 Amazon EC2 操作

您不会在策略中看到任何Principal元素,因为在基于身份的策略中,您没有指定获得权限的委托人。附加了策略的用户是隐式委托人。当您将权限策略附加到角色时,该IAM角色的信任策略中标识的委托人将获得权限

对于一张显示所有内容的表格 AWS Directory Service API操作及其适用的资源,请参阅AWS Directory Service API权限:操作、资源和条件参考

使用所需的权限 AWS Directory Service Console

让用户使用 AWS Directory Service 控制台,该用户必须具有上述策略中列出的权限,或者拥有目录服务完全访问角色或目录服务只读角色所授予的权限,如中所述AWS 的托管(预定义)策略 AWS Directory Service

如果您创建的IAM策略比所需的最低权限更严格,则控制台将无法按预期运行,供拥有该IAM策略的用户使用。

AWS 的托管(预定义)策略 AWS Directory Service

AWS 通过提供由创建和管理的预定义或托管IAM策略,解决了许多常见的用例 AWS。 托管策略为常见用例授予必要的权限,这有助于您决定所需的权限。有关更多信息,请参阅 AWS 的托管策略 AWS Directory Service

客户管理型策略示例

在本节中,您可以找到授予各种权限的用户策略示例 AWS Directory Service 行动。

注意

所有示例都使用美国西部(俄勒冈)区域 (us-west-2),并包含虚构账户。IDs

示例 1:允许用户对任何 Describe 操作执行任何 “描述” 操作 AWS Directory Service 资源

以下权限策略对用户授予权限以运行以 Describe 开头的所有操作。这些操作显示有关 AWS Directory Service 资源,例如目录或快照。请注意,Resource元素中的通配符 (*) 表示允许所有人执行这些操作 AWS Directory Service 账户拥有的资源。

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

示例 2:允许用户创建目录

以下权限策略授予权限以允许用户创建目录和所有其他相关资源 (如快照和信任)。为此,还需要获得某些Amazon EC2 服务的权限。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action": [ "ds:Create*", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress" ], "Resource":"*" ] } ] }

结合使用标签和 IAM 策略

您可以在大多数IAM策略中应用基于标签的资源级权限 AWS Directory Service API行动。这可让您更好地控制用户可创建、修改或使用哪些资源。您可以在IAM策略中使用带有以下条件上下文键和值的Condition元素(也称为Condition区块),根据资源的标签控制用户访问权限(权限):

  • 使用 aws:ResourceTag/tag-key: tag-value 可允许或拒绝对带特定标签的资源的用户操作。

  • 使用aws:ResourceTag/tag-key: tag-value 要求在API请求创建或修改允许使用标签的资源时使用(或不使用)特定标签。

  • 使用aws:TagKeys: [tag-key,...] 要求在API请求创建或修改允许使用标签的资源时使用(或不使用)一组特定的标签密钥。

注意

IAM策略中的条件上下文密钥和值仅适用于那些 AWS Directory Service actions,其中能够被标记的资源的标识符是必填参数。

IAM用户指南》中@@ 使用标签控制访问权限包含有关使用标签的更多信息。该指南的IAMJSON策略参考部分包含中JSON策略的元素、变量和评估逻辑的详细语法、描述和示例IAM。

以下标签策略示例允许所有 ds 调用,前提是它包含标签键/对 "fooKey":"fooValue"。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"VisualEditor0", "Effect":"Allow", "Action":[ "ds:*" ], "Resource":"*", "Condition":{ "StringEquals":{ "aws:ResourceTag/fooKey":"fooValue" } } }, { "Effect":"Allow", "Action":[ "ec2:*" ], "Resource":"*" } ] }

以下标签策略示例允许所有 ds 调用,前提是资源包含目录 ID“d-1234567890”。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"VisualEditor0", "Effect":"Allow", "Action":[ "ds:*" ], "Resource":"arn:aws:ds:us-east-1:123456789012:directory/d-1234567890" }, { "Effect":"Allow", "Action":[ "ec2:*" ], "Resource":"*" } ] }

有关更多信息ARNs,请参阅 Amazon 资源名称 (ARNs) 和 AWS 服务命名空间

以下清单 AWS Directory Service API操作支持基于标签的资源级权限: