如何建立 IAM 政策以明確授予權限,以在具有標籤的指定 VPC 中建立和管理 EC2 執行個體?
我想建立 AWS Identity and Access Management (IAM) 政策,該政策明確授予 IAM 身分管理虛擬私有雲端 (VPC) 中 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的權限。
簡短描述
IAM 政策必須限制 IAM 身分的權限,以管理 VPC 中具有標籤的執行個體。
Amazon EC2 提供部分資源層級權限,但您可以使用多種服務層級動作、資源和條件。若要控制對 EC2 資源的存取,請使用資源標籤。
解決方法
建立政策,以授予啟動 VPC 中執行個體的權限,但限制 IAM 身分管理執行個體的權限。若要限制執行個體的管理,請使用 ec2:ResourceTag 政策條件。
建立受管政策以附加至啟動執行個體的 IAM 向分
請完成下列步驟:
-
開啟 IAM 主控台,選擇政策,然後選擇建立政策。
-
選擇 JSON 標籤,然後輸入下列自訂政策:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantIAMPassRoleOnlyForEC2", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::ACCOUNTNUMBER:role/ROLENAME", "arn:aws:iam::ACCOUNTNUMBER:role/ROLENAME" ], "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } }, { "Sid": "ReadOnlyEC2WithNonResource", "Action": [ "ec2:Describe*", "iam:ListInstanceProfiles" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "ModifyingEC2WithNonResource", "Action": [ "ec2:CreateKeyPair", "ec2:CreateSecurityGroup" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "RunInstancesWithTagRestrictions", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:REGION:ACCOUNTNUMBER:instance/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER:volume/*" ], "Condition": { "StringEquals": { "aws:RequestTag/TAG-KEY": "TAG-VALUE" } } }, { "Sid": "RemainingRunInstancePermissionsNonResource", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:REGION::image/*", "arn:aws:ec2:REGION::snapshot/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER*:network-interface/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER*:key-pair/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER*:security-group/*" ] }, { "Sid": "EC2RunInstancesVpcSubnet", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:REGION:ACCOUNTNUMBER:subnet/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:REGION:ACCOUNTNUMBER:vpc/VPC-ID" } } }, { "Sid": "EC2VpcNonResourceSpecificActions", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkAclEntry", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteSecurityGroup", "ec2:CreateNetworkInterfacePermission", "ec2:CreateRoute", "ec2:UpdateSecurityGroupRuleDescriptionsEgress", "ec2:UpdateSecurityGroupRuleDescriptionsIngress" ], "Resource": "*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:REGION:ACCOUNTNUMBER:vpc/VPC-ID" } } }, { "Sid": "AllowInstanceActionsTagBased", "Effect": "Allow", "Action": [ "ec2:RebootInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:StartInstances", "ec2:AttachVolume", "ec2:DetachVolume", "ec2:AssociateIamInstanceProfile", "ec2:DisassociateIamInstanceProfile", "ec2:GetConsoleScreenshot", "ec2:ReplaceIamInstanceProfileAssociation" ], "Resource": [ "arn:aws:ec2:REGION:ACCOUNTNUMBER:instance/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER:volume/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/TAG-KEY": "TAG-VALUE" } } }, { "Sid": "AllowCreateTagsOnlyLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:REGION:ACCOUNTNUMBER:instance/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER:volume/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }
注意: 將 ACCOUNTNUMBER、REGION、TAG-KEY、TAG-VALUE、VPC-ID 和 ROLENAME 參數取代為您的值。
-
(選用) 若要將政策指派給 IAM 使用者或群組,請將 TAG-KEY 或 TAG-VALUE 參數取代為 ${aws:username} IAM 政策變數。此政策變數允許 IAM 使用 IAM 使用者的友好名稱預先填入參數。IAM 使用者只能在指定的 VPC 中啟動執行個體,並控制自己的執行個體。
-
選擇檢閱政策,然後輸入名稱。例如,輸入 VPC_Lockdown_VPC-ID。
-
選擇建立政策。
**注意:**您必須使用環境中的特定資源取代某些項目。如需詳細資訊,請參閱 Amazon Resource Name (ARN)。
將政策附加至使用者、群組或角色中
請完成下列步驟:
- 開啟 IAM 主控台。
- 在導覽窗格中,選擇使用者、群組或角色,然後選擇 IAM 身分。
- 選擇新增權限,然後選擇附加政策。
- 輸入政策名稱,然後選擇您的政策。
- 選擇附加政策。
附加自訂政策後,IAM 身分可以登入 AWS 管理主控台、開啟 EC2 儀表板,並啟動 EC2 執行個體。IAM 身分必須指定子網路、VPC 和標籤,以啟動 EC2 執行個體。
ec2:ResourceTags 條件會限制下列動作:
- 啟動執行個體。
- 停止執行個體。
- 重新啟動執行個體。
- 終止執行個體。
- 將磁碟區附加至執行個體。
- 從執行個體分離磁碟區。
- 取消 IAM 執行個體設定檔與執行個體的關聯。
- 關聯執行個體設定檔。
- 取代執行個體的 IAM 執行個體設定檔關聯。
- 獲取執行個體的主控台螢幕快照。
此政策會針對 VPC 限制下列動作:
- 刪除安全群組。
- 建立和刪除路由。
- 刪除路由表。
- 刪除網路存取控制清單 (network ACL)。
- 刪除網路 ACL 項目。
- 授權或撤銷安全群組輸入和輸出規則。
- 建立網路介面權限。
- 更新輸入和輸出規則的安全群組說明。
相關資訊
如何使用 PrincipalTag、ResourceTag、RequestTag 和 TagKeys 條件鍵為標籤型限制建立 IAM 政策?
相關內容
- 已提問 1 年前lg...
- 已提問 3 個月前lg...
- 已提問 1 年前lg...
- 已提問 1 年前lg...
- 已提問 11 天前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 10 個月前
- AWS 官方已更新 2 年前