如何建立 IAM 政策以透過標籤控制對 Amazon EC2 資源的存取?

2 分的閱讀內容
0

我想建立透過標籤控制對 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體之存取的 AWS Identity and Access Management (IAM) 政策。

簡短描述

如下所示控制對 Amazon EC2 執行個體小型部署的存取:

  1. 為您希望向使用者或群組授予存取權之執行個體新增特定標籤
  2. 建立向具有特定標籤之任何執行個體授予存取權的 IAM 政策。
  3. 將 IAM 政策連接至您想存取執行個體的使用者或群組。

解決方法

將標籤新增至您的 EC2 執行個體群組

開啟 Amazon EC2 主控台。然後,為您希望使用者或群組能夠存取之 EC2 執行個體群組新增標籤。如果您尚未擁有標籤,請建立新標籤。
**注意:**為您的資源新增標籤前,請務必閱讀並了解標籤限制。Amazon EC2 標籤區分大小寫。

建立 IAM 政策,向具有特定標籤的執行個體授予存取權

建立執行下列操作的 IAM 政策:

  • 允許控制具有標籤的執行個體。
  • 包含條件式陳述式,可在條件索引鍵 ec2:ResourceTag/UserName 的值與政策變數 aws:username 相符時允許存取 Amazon EC2 資源。在 IAM 評估政策時,政策變數 ${aws:username} 會取代為目前 IAM 使用者的易記名稱
  • 允許存取 Amazon EC2 資源的 ec2:Describe* 動作。
  • 明確拒絕存取 ec2:CreateTagsec2:DeleteTags 動作,以防止使用者建立或刪除標籤。此動作可防止使用者透過新增特定標籤至 EC2 執行個體加以控制。

完成的政策與以下內容類似:

**注意:**此政策適用於使用 ec2:ResourceTag 條件索引鍵的 Amazon EC2 執行個體。若要限制使用標籤啟動新的 Amazon EC2 執行個體,請參閱如何使用 IAM 政策標籤限制 EC2 執行個體或 EBS 磁碟區的建立方式?

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/UserName": "${aws:username}"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    },
    {
      "Effect": "Deny",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": "*"
    }
  ]
}

注意: 對於非 IAM 使用者的主體,例如 IAM Identity Center 許可集或聯合身分使用者,請使用變數 aws:userid 而不是 aws:username。變數 aws:userid 具有 account:caller-specified-name 值。如需詳細資訊,請參閱 IAM 政策元素: 變數和標籤如何將 IAM 政策變數與聯合身分使用者搭配使用?

將 IAM 政策連接至您想存取執行個體的使用者或群組

將 IAM 政策連接至您想存取執行個體的使用者或群組。您可以使用 AWS 管理主控台、AWS CLI 或 AWS API 連接 IAM 政策。

相關資訊

授予 Amazon EC2 資源的必要許可

Amazon EC2 的 IAM 政策

IAM 教學課程: 根據標籤定義存取 AWS 資源的許可

AWS 官方
AWS 官方已更新 4 個月前