特定操作のみ可能なIAMユーザのポリシー設定

takaokaです。

EC2インスタンスを管理するユーザポリシー設定は皆様どのようにされていますか?
今回は下記の要件をみたすIAMユーザのポリシーをご紹介したいと思います。

IAMユーザのポリシー要件
・EC2インスタンス画面のみ表示可能であること。
・特定EC2インスタンスのみ"開始"・"停止"・"再起動"操作が可能であること。

特定のEC2インスタンスのみ上記の操作を可能にするため、予め「IAMのアカウント番号」「アベイラビリティーゾーン」「インスタンスID」をメモしておきます。

すでにIAMユーザは作成されているとして、インラインポリシー設定で次のコードを記述します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceStatus"
            ],
            "Sid": "ec2status",
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "ec2operation",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
            "Resource": [
                "arn:aws:ec2:アベイラビリティーゾーン:アカウント番号:instance/インスタンスID"
            ],
            "Effect": "Allow"
        }
    ]
}

※"ec2:DescribeInstances"はインスタンス画面を表示可能にします。
※"ec2:DescribeInstanceStatus"はインスタンスの「ステータスチェック」部分を表示可能にします。
アベイラビリティーゾーンは「ap-northeast-1」のように記載します。
※"ec2status"の"Resource"を「*」で指定しているため登録されているインスタンスは全て表示されます。特定のインスタンスを指定するとインスタンス画面自体が表示されません。
 

実際に上記ポリシーを適用したIAMユーザでEC2のマネージメントコンソールにアクセスすると下記のようになります。  

■EC2ダッシュボード画面

instance01

インスタンス画面
下記画面の例では当アカウントで1つしかインスタンスを登録していないので1つ表示されています。複数登録した場合は他のインスタンスも表示されます。

instance02

AWS Policy Generatorを使うとコードの雛型は簡単に作れるので初めにお試しいただくのが良いと思います。
AWS Policy Generator

コードのActionについては下記が参考になりました。
Actions - Amazon Elastic Compute Cloud

 

 

 

アプリケーション開発バナー