Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何使用 PrincipalTag、ResourceTag、RequestTag 和 TagKeys 條件索引鍵來控制對 AWS 政策的存取權?
我想在 AWS Identity and Access Management (IAM) 政策中使用 PrincipalTag、ResourceTag、RequestTag 和 TagKeys 這些標籤型條件索引鍵,來控制對 AWS 資源的存取權。
解決方法
以下的 IAM 範例政策使用條件索引鍵來控制對含有標籤之 AWS 資源的存取權。
若要判斷您可以執行哪些 API 動作,最佳實務是檢閱您所使用服務的 API 文件。
PrincipalTag 條件索引鍵
使用 aws:PrincipalTag/tag-key 條件索引鍵來比較下列標籤:
- 附加到提出請求之主體的標籤
- 在 IAM 政策中指定的標籤
在以下範例中,Amazon Simple Storage Service (Amazon S3) 的 PutObject 動作會拒絕所有使用者對儲存貯體的存取,僅允許標題為 Product-Manager 的使用者存取:
{ "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 資源的存取權。
您可以搭配全域版本 aws:ResourceTag 及 AWS 服務 (例如 ec2:ResourceTag) 使用 aws:ResourceTag/tag-key 條件索引鍵。
在以下範例中,IAM 政策允許使用者啟動、停止及終止位於測試環境中的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體:
{ "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 政策允許使用者僅在請求中包含 Env 標籤且其值為 Dev、Prod 或 QA 時,才能建立 Amazon Elastic Block Store (Amazon EBS) 磁碟區:
{ "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 政策中指定的標籤索引鍵進行比較。此條件索引鍵可驗證附加到資源的標籤索引鍵。
當請求包含多組鍵值組時,請使用 ForAllValues 或 ForAnyValue 集合運算子來比較這些值。
在以下範例中,IAM 政策會限制在 AWS 資源上建立標籤。它允許使用者在建立新的 Amazon EBS 磁碟區時,只能建立 Env 和 CostCenter 標籤。ForAllValues 集合運算子搭配 aws:TagKeys 條件索引鍵可讓使用者將必要的標籤附加至資源。此政策會在建立資源時,將這些標籤索引鍵設為選用,並防止建立其他鍵值組的標籤:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "Env", "CostCenter" ] } } } ] }
相關資訊
- 語言
- 中文 (繁體)

相關內容
- 已提問 2 年前
- 已提問 2 年前