我想建立透過標籤控制對 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體之存取的 AWS Identity and Access Management (IAM) 政策。
簡短描述
如下所示控制對 Amazon EC2 執行個體小型部署的存取:
- 為您希望向使用者或群組授予存取權之執行個體新增特定標籤。
- 建立向具有特定標籤之任何執行個體授予存取權的 IAM 政策。
- 將 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:CreateTags 和 ec2: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 資源的許可