本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用基于身份的策略(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 控制台所需的权限
要使用 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:允许用户对任何 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 操作。
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操作列表支持基于标签的资源级权限: