AWSでIAMユーザを作成後、特定操作のみさせたいといった権限要件がよくあります。
例えば、
・EC2インスタンス画面のみ表示可能であること。
・特定EC2インスタンスのみ”開始”・”停止”・”再起動”操作が可能であること。
・RDSインスタンス画面のみ表示可能であること。
・特定RDSインスタンスのみ”開始”・”停止”・”再起動”操作が可能であること。
※2017年6月からRDSも開始、停止が可能になったそうです。
http://dev.classmethod.jp/cloud/aws/start-stop-db-instance-for-rds/
実現方法として、インラインポリシー設定で次のコードを記述します。
※すでにIAMユーザは作成されているとする
参考:Amazon RDS でアイデンティティベースのポリシー (IAM ポリシー) を使用する
{
"Version": "2012-10-17",
"Statement": [
{
"Sid":"AllowDisplayInstancesList",
"Effect": "Allow"
"Action": [
"rds:DescribeDBInstances",
"ec2:DescribeInstances",
"ec2:DescribeInstanceStatus"
],
"Resource": [
"*"
],
},
{
"Sid":"Allow test EC2 InstancesStartAndSotp",
"Effect": "Allow",
"Action": [
"ec2:RebootInstances",
"ec2:StartInstances",
"ec2:StopInstances"
],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/project": "test"
}
},
"Resource": [
"*"
]
},
{
"Sid":"AllowMySqlInstancesStartAndSotp",
"Effect": "Allow",
"Action": [
"rds:StartDBInstance",
"rds:StopDBInstance",
"rds:RebootDBInstance"
],
"Condition": {
"StringEquals": {
"rds:DatabaseEngine":"mysql",
"rds:DatabaseClass":"db.t2.micro"
}
},
"Resource": [
"*"
]
}
]
}
インスタンスの表示と制御(開始、停止)は別々のActionで記載する必要があります。
かつActionがDescribe*の場合、Conditionが効かないので要注意。
RDSはつい最近開始、停止を制御できたので、
Policy Generatorでポリシーを作成する際に、「アクセス許可の編集」ページで、
アクションの選択に、StartDBInstance、StopDBInstanceがなく、直接編集で入力しかないです。