Amazon-Web-Services
用於限制對一個 VPC 的訪問的 IAM 策略
我正在嘗試將使用者限制為單個 VPC。我通過控制對 Amazon VPC 資源的訪問並提出了以下策略,但它不起作用。有人可以指出其中的錯誤嗎?
我應該提到,在我在模擬設置中的條件鍵下設置 VPC ARN 後, IAM 策略模擬器似乎認為該策略很好。
(我已將區域、帳戶和 vpc-id 替換為策略中的實際值。)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*Vpc*", "ec2:*Subnet*", "ec2:*Gateway*", "ec2:*Vpn*", "ec2:*Route*", "ec2:*Address*", "ec2:*SecurityGroup*", "ec2:*NetworkAcl*", "ec2:*DhcpOptions*", "ec2:RunInstances", "ec2:StopInstances", "ec2:StartInstances", "ec2:TerminateInstances", "ec2:Describe*" ], "Resource": "*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account:vpc/vpc-id" } } } ] }
謝謝。
您很可能需要按照範例 5 重構您的IAM策略。在控制對 Amazon VPC 資源的訪問中將實例啟動到特定 VPC中:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account:subnet/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account:vpc/vpc-1a2b3c4d" } } }, ... ] }
也就是說,可用資源(及其粒度)特定於每個 API 操作,因此對於手頭的範例,RunInstances適用於特定子網中的 EC2 資源,而這又是 VPC 的一部分;因此,您需要定位子網,但可以通過上述IAM 策略條件
ec2:Vpc
的屬性進一步限制可能的子網集。