為 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"
    }
  ]
}