本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用基于身份的策略(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 策略中使用标签
您可以在用于大多数 AWS Directory Service API 操作的 IAM 策略中应用基于标签的资源级权限。这可让您更好地控制用户可创建、修改或使用哪些资源。在 IAM policy 中将 Condition
元素(也称作 Condition
块)与以下条件上下文键和值结合使用来基于资源标签控制用户访问(权限):
-
使用
aws
:ResourceTag
/tag-key
:tag-value
可允许或拒绝对带特定标签的资源的用户操作。 -
使用
aws
:ResourceTag
/tag-key
:tag-value
可要求在发出创建或修改允许标签的资源的 API 请求时使用(或不使用)特定标签。 -
使用
aws
:TagKeys
: [tag-key
, ...] 可要求在发出创建或修改允许标签的资源的 API 请求时使用(或不使用)一组特定标签键。
注意
IAM policy 中的条件上下文键和值仅适用于能够标记的资源的标识符是必需参数的那些 AWS Directory Service 操作。
《IAM 用户指南》中的使用标签控制访问具有有关使用标签的其他信息。该指南的 IAM JSON 策略参考部分包含 IAM 中的 JSON 策略的元素、变量和评估逻辑的详细语法、描述和示例。
以下标签策略示例允许所有 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 操作列表支持基于标签的资源级权限: