使用標籤控制對 IAM 使用者和角色的存取 - AWS Identity and Access Management

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

使用標籤控制對 IAM 使用者和角色的存取

使用以下區段中的資訊來控制可以存取 IAM 使用者和角色的人員,以及使用者和角色可以存取的資源。如需控制其他 AWS 資源存取權的一般資訊和範例,包括其他 IAM 資源,請參閱AWS Identity and Access Management 資源標籤

注意

如需有關標籤索引鍵和標籤索引鍵值區分大小寫的詳細資訊,請參閱 Case sensitivity

您可以將標籤連接至 IAM 資源、傳遞至請求,或連接至提出請求的主體。IAM 使用者或角色可以同時是資源和主體。例如,您可以編寫政策,此政策會允許使用者列出使用者的群組。只有在發出請求的使用者 (主體) 擁有與其嘗試檢視的使用者相同的 project=blue 標籤時,才允許此操作。在這個範例中,只要使用者處理的是同一個專案,他們就可以檢視任何使用者 (包括自己) 的群組成員資格。

若要根據標籤控制存取,則在政策的條件元素中提供標籤資訊。建立 IAM 政策時,您可以使用 IAM 標籤與關聯的標籤條件索引鍵,以控制下列任何項目的存取權:

  • 資源 – 根據使用者或角色資源的標籤控制對這些資源的存取權。為此,請使用 aws:ResourceTag/鍵名條件鍵來指定哪些標籤鍵值對必須附加到資源。如需詳細資訊,請參閱 控制 AWS 資源的存取許可

  • 請求 – 控制您可以在 IAM 請求條件中傳遞哪些標籤。若要這麼做,請使用 aws:RequestTag/金鑰名稱條件金鑰來指定可從 IAM 使用者或角色新增、變更或移除哪些標籤。此金鑰的使用方式與 IAM 資源和其他 AWS 資源的使用方式相同。如需詳細資訊,請參閱 在 AWS 請求期間控制存取許可

  • 主體 – 根據連接至該人員 IAM 使用者或角色的標籤,控制提出請求的人員 (主體) 可執行的操作。若要這麼做,請使用 aws:PrincipalTag/金鑰名稱條件金鑰來指定在允許要求之前,必須將哪些標籤附加至 IAM 使用者或角色。

  • 授權程序的任何部分 — 使用 aws: TagKeys condition 金鑰控制是否可以在請求中或主體使用特定標籤金鑰。在此情況下,此鍵值無關緊要。此金鑰的行為與 IAM 和其他 AWS 服務類似。不過,當您在 IAM 中標記使用者時,這也會控制主體是否可以對任何服務發出請求。如需詳細資訊,請參閱 根據標籤索引鍵控制存取權限

您可以使用視覺編輯器、使用 JSON,或匯入現有的受管政策,來建立 IAM 政策。如需詳細資訊,請參閱 使用客戶管理的政策定義自訂IAM權限

注意

您也可以在擔任 IAM 角色或與使用者聯合身分時傳遞工作階段標籤。這些標籤僅在工作階段的時長內有效。

控制 IAM 主體的存取權限

您可以根據在該人員身分中連接的標籤,控制主體可執行的操作。

此範例會示範如何建立身分型政策,允許此帳戶中的任何使用者檢視任何使用者的群組成員資格,包括他們自己,只要他們正在處理同一個專案。只有在使用者的資源標籤和主體的標籤具有相同標籤鍵值 project 時,才允許此操作。若要使用此政策,請將範例政策中的斜體預留位置文字取代為您自己的資訊。然後,遵循建立政策編輯政策中的指示進行操作。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "iam:ListGroupsForUser", "Resource": "arn:aws:iam::111222333444:user/*", "Condition": { "StringEquals": {"aws:ResourceTag/project": "${aws:PrincipalTag/project}"} } }] }

根據標籤索引鍵控制存取權限

您可以在 IAM 政策中使用標籤來控制是否可以在請求中或主體使用特定標籤金鑰。

此範例會示範如何建立身分型政策,僅允許從使用者中刪除具有 temporary 索引鍵的標籤。若要使用此政策,請將範例政策中的斜體預留位置文字取代為您自己的資訊。然後,遵循建立政策編輯政策中的指示進行操作。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:UntagUser", "Resource": "*", "Condition": {"ForAllValues:StringEquals": {"aws:TagKeys": ["temporary"]}} }] }