IPがコロコロ変わる人が居て、毎回IP追加のお願いに対応するのが面倒なので、もうIP変わる度に自分でsshの接続元設定を追加削除してくれやー。
でも特定セキュリティグループの設定以外は何もかも出来なくしたIAMユーザを使わせたい、というときに設定するポリシー。
SecurityGroupAccessとか適当な名前を付けて設定する。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1393841669000",
"Effect": "Allow",
"Action": [
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
},
{
"Sid": "Stmt1393841669001",
"Effect": "Allow",
"Action": [
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress"
],
"Resource": [
"arn:aws:ec2:ap-northeast-1:123456789012:security-group/sg-aabbccdd"
]
}
]
}
ap-northeast-1
とか123456789012
とかsg-aabbccdd
は、それぞれリージョン、アカウントID、セキュリティグループIDに書き換えて使う。
DescribeSecurityGroupsはセキュリティグループ一覧の表示に必要なので "" にせざるを得ない。不要なセキュリティグループの設定も見れてしまうが見れるだけで修正は出来ないから割りきって諦める。
AuthorizeSecurityGroupは設定の追加、RevokeSecurityGroup*は設定の削除に必要な権限、EgressとIngressはそれぞれOutboundルールとInboundルールのこと。Inboundの設定追加と削除だけなら*Egressの権限は付けなくて良かったね。
ホントはAllTraficを許可したり好きなポートを開けたり出来ないよう、更に指定できるポートの条件も追加したいとこで、多分Condition設定を追加すれば出来るかもしれないが今日はそこまで調べてない。