IAMグループにEC2セキュリティグループを編集する権限を付与しようとしていますが、EC2のすべてへのアクセスを許可しないと、これを機能させることができません。
私はこれのいくつかのバージョンを試しました:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1392336685000",
"Effect": "Allow",
"Action": [
"ec2:*"
],
"Resource": [
"arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:security-group/*"
]
}
]
}
しかし、IAMユーザーでログインすると、セキュリティグループページに「この操作を実行する権限がありません」というメッセージが表示されます。
「Amazon EC2フルアクセス」のIAMポリシーテンプレートを選択すると、ユーザーはEC2のすべてにアクセスできるため、ユーザー/グループが機能していることがわかります。
私は明らかにIAMの経験があまりないので、助けていただければ幸いです。
これを機能させるには、以下を明示的に許可する必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1392679134000",
"Effect": "Allow",
"Action": [
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CreateSecurityGroup",
"ec2:DeleteSecurityGroup",
"ec2:DescribeInstanceAttribute",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribeNetworkAcls",
"ec2:DescribeSecurityGroups",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress"
],
"Resource": [
"*"
]
}
]
}
上記のJSONポリシーは基本的に、ユーザーが上記にのみアクセスできることを規定しています。彼らは他の何にもアクセスできません。これには、ec2インスタンス、S3、IAM、cloudfrontなどが含まれます。
編集を単一のセキュリティグループに制限したい場合は、2つのステートメントが必要だと思います。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1413232782000",
"Effect": "Allow",
"Action": [
"ec2:DescribeInstanceAttribute",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribeNetworkAcls",
"ec2:DescribeSecurityGroups"
],
"Resource": [
"*"
]
},
{
"Sid": "Stmt1413232782001",
"Effect": "Allow",
"Action": [
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress"
],
"Resource": [
"arn:aws:ec2:us-east-1:<accountid>:security-group/sg-<id>"
]
}
]
}
DescribeInstanceは必要ないかもしれませんが、私の場合はそれが欲しかったので、それなしでテストしていません
セキュリティグループがインスタンスまたは他のEC2リソースによって使用されている可能性があります。あなたは試すことができます:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1392336685000",
"Effect": "Allow",
"Action": [
"ec2:*"
],
"Resource": [
"arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:instance/*",
"arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:security-group/*"
]
}
]
}
question that @ nsij22 の回答を、受け入れられた回答のコメントで尋ねました。残念ながら、それは不可能のようです。 IAM Policy Simulator によると、特定のリソースでは @ DevMan14 の回答からの以下のアクションのみを使用できます。
その他については、IAM Policy Simulatorは次のように述べています。
このアクションは、リソースレベルの権限をサポートしていません。アクセスを許可するポリシーでは、リソース要素に「*」を指定する必要があります。
次のようになります。
「許可」と「拒否」はすべて同じなので、折りたたみました。