如何使用 PrincipalTag、ResourceTag、RequestTag 和 TagKeys 條件鍵為基於標籤的限制建立 IAM 政策?
我想為基於標籤的限制建立 AWS 身分和存取管理 (IAM) 政策。如何使用 PrincipalTag、ResourceTag、RequestTag 和 TagKeys 條件鍵?
簡短描述
使用下列 IAM 範例政策,針對您的使用情況以條件鍵建立基於標籤的限制。
解決方法
PrincipalTag 條件鍵
aws:PrincipalTag 條件鍵可用來比對附加至提出請求之主體的標籤和 IAM 政策中的標籤。**PrincipalTag ** 鍵的值會與具有相符標籤鍵的 IAM 標籤值 (如果出現在請求主體上) 進行比較。
下列 IAM 政策範例針對 Amazon Simple Storage Service (Amazon S3) 儲存貯體提供限制。除了標題為「Product-Manager」的使用者以外,Amazon S3 PutObject 動作已拒絕所有使用者對儲存貯體的權限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllButProductManagers", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::productionbucket/*" ], "Condition": { "StringNotEquals": { "aws:PrincipalTag/job-title": "Product-Manager" } } } ] }
ResourceTag 條件鍵
aws:ResourceTag/tag-key 條件鍵會將 IAM 政策中指定的標籤-鍵值對與連接至 AWS 資源的鍵-值對進行比較。如需詳細資訊,請參閱控制 AWS 資源的存取權。
在 IAM 政策評估期間,ResourceTag 標籤會與 IAM 標籤進行比較。ResourceTag ** 鍵的值會與有相符鍵-值對的 IAM 標籤 (如果存在 AWS 資源的話) 進行比較。此條件鍵可用於全域版aws:ResourceTag** 和 AWS 服務中,例如 **ec2:ResourceTag **。如需詳細資訊,請參閱 AWS 服務的動作、資源和條件鍵。
下列 IAM 政策範例可讓使用者啟動、停止和終止位於「測試」環境中的執行個體。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyForTestEnvironment", "Effect": "Allow", "Action": [ "ec2:TerminateInstances", "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ec2:ResourceTag/Env": "test" } } } ] }
RequestTag 條件鍵
使用aws:RequestTag/tag-key 條件鍵比較使用者請求中傳遞的鍵-值對與 IAM 政策中指定的標籤對。條件鍵適用於在資源上建立資源或標籤的動作,並檢查標籤值。
例如,請參閱下列 IAM 政策。它強制使用者在建立 Amazon Elastic Block Store (Amazon EBS) 磁碟區時,建立值為「Dev」、「Prod」或「QA」的特定標籤「Env」。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateVolumeWithEnvTag", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "StringEquals": { "aws:RequestTag/Env": [ "Dev", "Prod", "QA" ] } } } ] }
TagKeys 條件鍵
使用 aws:TagKeys 條件鍵比較請求中的標籤鍵和 IAM 政策中指定的鍵。TagKeys 鍵的值會與 AWS 資源請求中的標籤清單進行比較。tagKeys 條件鍵用於驗證附加到資源的標籤-鍵。
由於您可以在請求中定義多個標籤鍵-值對,因此請求可以有多個值。這些值可以使用 ForallValues 或 ForanyValue 集運算符進行比較。
下列範例政策限制在 AWS 資源上建立的標籤。「Env」和「CostCenter」標籤是使用者可以使用新的 Amazon EBS 磁碟區建立的唯一標籤鍵。搭配使用 ForAllValues 集運算符和 aws:TagKeys 限制使用者僅在 AWS 資源上附加必要的標籤。這不需要使用者在資源建立請求中提供這些標籤鍵,但可以防止使用者建立具有其他鍵-值對的標籤。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "Env", "CostCenter" ] } } } ] }
相關資訊
相關內容
- 已提問 1 年前lg...
- 已提問 1 年前lg...
- 已提問 1 年前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前