AWS CLI利用環境(Cloud9)の構築・利用・破棄(簡易版)

事前作業3.1. IAMポリシーの作成 (handson-Cloud9EnvironmentOwner-policy)

目的

マネジメントコンソールでIAMポリシー"handson-Cloud9EnvironmentOwner-policy"を作成します。

手順

IAMダッシュボードへのアクセス

  • AWSマネジメントコンソールの左上のロゴをクリックします。

    _images/_menu_bar-logo.png

    表示(例): AWSマネジメントコンソールのロゴ (左上)

  • AWSマネジメントコンソールのホーム画面が表示されます。

    _images/_home.png

    表示(例): AWSマネジメントコンソール

  • "サービスを検索する"欄に"iam"と入力します。

    _images/_search-iam.png

    表示(例): AWSマネジメントコンソール サービスを検索する

  • "IAM AWSリソースへのアクセスの管理"をクリックします。

  • "IAMダッシュボード"が表示されます。

    _images/_dashboard1.png

    表示(例): IAMダッシュボード

ポリシー画面へのアクセス

  • 左ペインの"ポリシー"リンクをクリックします。

    _images/_dashboard-pane.png

    表示(例): IAMダッシュボード 左ペイン (一部)

  • ポリシー一覧が表示されます。

    _images/_list3.png

    表示(例):: ポリシー一覧 (上部)

  • "ポリシーの作成"ボタンをクリックします。

    _images/_button-create-policy.png

    表示(例): ポリシーの作成 ボタン

Step1. ポリシーの作成 画面

  • "ポリシーの作成"画面が表示されます。

    _images/_window-step1.png

    表示(例) Step1. ポリシーの作成

  • "JSON"タブをクリックします。

    _images/_window-step1-case-json.png

    表示(例) JSON タブ

  • JSON記入欄(行番号が表示されているエディタ)のサンプルJSONを全て削除します。

  • 以下のポリシードキュメント全体をコピーし、JSON記入欄にペーストします。

    ポリシー:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cloud9:ValidateEnvironmentName",
                    "cloud9:GetUserPublicKey",
                    "iam:GetUser",
                    "iam:ListUsers",
                    "ec2:DescribeIamInstanceProfileAssociations",
                    "ec2:DescribeInstances",
                    "ec2:DescribeInstanceStatus",
                    "ec2:DescribeSubnets",
                    "ec2:DescribeVolumes",
                    "ec2:DescribeVpcs"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "cloud9:CreateEnvironmentEC2",
                    "cloud9:DeleteEnvironment"
                ],
                "Resource": "*",
                "Condition": {
                    "StringLike": {
                        "cloud9:EnvironmentName": "handson-*",
                        "cloud9:InstanceType": [
                            "t2.*",
                            "t3.*",
                            "t3a.*"
                        ]
                    }
                }
            },
            {
                "Effect": "Allow",
                "Action": "cloud9:DescribeEnvironmentMemberships",
                "Resource": "*",
                "Condition": {
                    "Null": {
                        "cloud9:UserArn": "true",
                        "cloud9:EnvironmentId": "true"
                    }
                }
            },
            {
                "Effect": "Allow",
                "Action": "iam:CreateServiceLinkedRole",
                "Resource": "*",
                "Condition": {
                    "StringLike": {
                        "iam:AWSServiceName": "cloud9.amazonaws.com"
                    }
                }
            },
            {
                "Effect": "Allow",
                "Action": [
                    "ec2:DisassociateIamInstanceProfile",
                    "ec2:AssociateIamInstanceProfile"
                ],
                "Resource": "arn:aws:ec2:*:*:instance/*",
                "Condition": {
                    "StringLike": {
                        "ec2:ResourceTag/Name": "aws-cloud9-handson-*"
                    }
                }
            },
            {
                "Effect": "Allow",
                "Action": [
                  "ec2:RebootInstances",
                  "ec2:StopInstances",
                  "ec2:StartInstances",
                  "ec2:TerminateInstances"
                ],
                "Resource": "arn:aws:ec2:*:*:instance/*",
                "Condition": {
                    "StringLike": {
                        "ec2:ResourceTag/Name": "aws-cloud9-handson-*"
                    }
                }
            },
            {
                "Action": "iam:ListInstanceProfiles",
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:iam::*:instance-profile/*"
                ]
            },
            {
                "Action": "iam:PassRole",
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:iam::*:role/handson-*"
                ],
                "Condition": {
                    "StringLike": {
                        "iam:PassedToService": [
                            "ec2.amazonaws.com"
                        ]
                    }
                }
            }
        ]
    }
    
  • "ポリシーの確認"ボタンをクリックします。

Step2. ポリシーの作成 画面

  • "ポリシーの作成"画面が表示されます。

    _images/_window-step2-case-handson-Cloud9EnvironmentOwner.png

    表示(例) Step2. ポリシーの作成

  • 以下を入力します。

    名前

    handson-Cloud9EnvironmentOwner-policy

    説明

    AWS CLI handson environment

  • "ポリシーの作成"ボタンをクリックします。

ポリシー一覧 画面

  • "handson-Cloud9EnvironmentOwner-policyが作成されました。"というメッセージが表示されます。

    _images/_result-case-handson-Cloud9EnvironmentOwner.png

    表示(例) ポリシー一覧

完了確認

  • ポリシー一覧の"検索"欄に"handson-Cloud9EnvironmentOwner-policy"を入力します。

    _images/_list-search-case-handson-Cloud9EnvironmentOwner.png

    表示(例): ポリシー一覧 (検索結果)

  • IAMポリシー"handson-Cloud9EnvironmentOwner-policy"が一覧に存在することを確認します。