針對 AWS Directory Service 使用以身分為基礎的政策 (IAM 政策) - AWS Directory Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

針對 AWS Directory Service 使用以身分為基礎的政策 (IAM 政策)

這個主題提供以身分為基礎的政策範例,在該政策中帳戶管理員可以將許可政策連接至 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 動作的許可。這時需要 IAM 動作的存取權,AWS Directory Service 才能代表您讀取和建立 IAM 角色。Resource 值結尾的萬用字元 (*) 表示該陳述式允許對任何 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 Directory Service 的 AWS 受管 (預先定義) 政策 中說明之 Directory Service 完整存取角色或 Directory Service 唯讀角色授予的許可。

如果您建立比最基本必要許可更嚴格的 IAM 政策,則對於採取該 IAM 政策的使用者而言, 主控台就無法如預期運作。

AWS Directory Service 的 AWS 受管 (預先定義) 政策

AWS 透過提供獨立的 IAM 政策來解決許多常用案例,這些政策由 AWS 所建立與管理。受管政策授與常見使用案例中必要的許可,讓您免於查詢需要哪些許可。如需詳細資訊,請參閱《IAM 使用者指南》https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies中的 AWS 受管政策

下列 AWS 管理的政策專屬於 AWS Directory Service,可連接到您帳戶中的使用者:

  • AWSDirectoryServiceReadOnlyAccess - 授予對於根 AWS 根帳戶之所有 AWS Directory Service 資源、EC2 子網路、EC2 網路介面及 Amazon Simple Notification Service (Amazon SNS) 主題和訂閱的使用者或群組唯讀存取權。如需詳細資訊,請參閱對 AWS Directory Service 使用 AWS 受管政策

  • AWSDirectoryServiceFullAccess - 授予使用者或群組以下權限:

    • AWS Directory Service 的完整存取權

    • 存取使用 AWS Directory Service 所需的重要 Amazon EC2 服務

    • 能夠列出 Amazon SNS 主題

    • 能夠建立、管理和刪除名稱以「DirectoryMonitoring」開頭的 Amazon SNS 主題

    如需詳細資訊,請參閱對 AWS Directory Service 使用 AWS 受管政策

此外,另有適合與其他 IAM 角色搭配使用的其他 AWS 受管政策。這些政策會指派給與您 AWS Directory Service 目錄中使用者相關聯的角色。這時必須套用這些政策,該類使用者才能存取其他 AWS 資源 (例如 Amazon EC2)。如需詳細資訊,請參閱授予 AWS 資源存取權給使用者與群組

您也可以建立自訂 IAM 政策,讓使用者可存取所需的 API 動作和資源。您可以將這些自訂政策連接至需要這些許可的 IAM 使用者或群組。

客戶受管政策範例

在本節中,您可以找到授予各種 AWS Directory Service 動作之許可的使用者政策範例。

注意

所有範例皆使用美國西部 (奧勒岡) 區域 (us-west-2) 及虛構帳戶 ID。

範例 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 政策中,套用以標籤為基礎的資源層級許可。這可讓您更有效地控制使用者可以建立、修改或使用哪些資源。您可以使用 Condition 元素 (也稱為 Condition 區塊),以及 IAM 政策中的以下條件內容金鑰和值,來根據資源標籤控制使用者存取 (許可):

  • 使用 aws:ResourceTag/tag-key: tag-value 以允許或拒絕資源上具有特定標籤的使用者動作。

  • 使用 aws:ResourceTag/tag-key: tag-value 以在提出 API 請求時,要求使用 (或不使用) 特定標籤,以建立或修改允許標籤的資源。

  • 使用 aws:TagKeys: [tag-key, ...] 以在提出 API 請求時,要求使用 (或不使用) 特定標籤金鑰集,以建立或修改允許標籤的資源。

注意

IAM 政策中的條件內容金鑰和值,只會套用到資源識別符可標記為必要參數的那些 AWS Directory Service 動作。

《IAM 使用者指南》中的使用標籤控制存取有如何使用標籤的其他資訊。該指南的 IAM JSON 政策參考章節有詳細的語法、說明,還有元素、變數範例,以及在 IAM 中的 JSON 政策評估邏輯。

只要標籤包含標籤金鑰對「fooKey」:「fooValue」,以下標籤政策範例即允許所有 ds 呼叫。​

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

只要資源包含目錄 ID「d-1234567890」,以下資源政策範例即允許所有 ds 呼叫。​

{ "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":"*" } ] }

如需 ARN 的詳細資訊,請參閱 Amazon Resource Name (ARN) 與 AWS 服務命名空間

下列 AWS Directory Service API 操作清單可支援以標籤為基礎的資源層級許可:​