為 AWS 資源新增了標籤,但 IAM 政策沒有作用。哪些 AWS 服務支援基於授權的標籤?
上次更新日期:2022-02-17
我的資源使用了正確的標籤金鑰和值進行標籤,但我的 AWS Identity and Access Management (IAM) 政策沒有評估資源上的標籤。
簡短描述
IAM 政策可以使用全局條件金鑰 aws:ResourceTag 來控制基於資源的標籤金鑰和值的存取。並非所有 AWS 服務都支援標籤授權。某些 AWS 資源 (如 AWS Lambda 函數和 Amazon Simple Queue Service (Amazon SQS) 佇列) 可以加上標籤。但是,IAM 政策不能使用這些標籤來控制對資源的存取。有關支援基於標籤授權的 AWS 服務列表,請參閲可使用 IAM 的 AWS 服務。
解決方案
如果 AWS 服務不支援基於標籤的授權,請檢查服務的動作、資源和條件金鑰,以查看 IAM 政策支援的資源層級許可和條件金鑰。某些 AWS 服務 (例如 Amazon SQS 的存取管理概觀和 AWS Lambda 基於身分的 IAM 政策) 有含範例 IAM 政策的文件。
某些 Lambda 動作 (例如 DeleteFunction 和 PublishVersion) 可以使用資源層級許可限制其僅有特定的 Lambda 函數可以使用。將此範例 IAM 政策與 IAM 使用者連接,即可執行這些 Lambda 動作,但只能在單一 Lambda 函數上執行。
注意:請編輯 IAM 政策,以包含您自己的 Lambda 函數 ARN。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowActionsOnSpecificFunction",
"Effect": "Allow",
"Action": [
"lambda:DeleteFunction",
"lambda:PublishVersion"
],
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function"
}
]
}