[JAWS-UG CLI] IAM #84 インスタンスプロファイルの作成

前提条件

IAMへの権限

IAMに対してフル権限があること。

AWS CLIのバージョン

以下のバージョンで動作確認済

  • AWS CLI 1.11.14
コマンド
aws --version

結果(例):

  aws-cli/1.11.34 Python/2.7.10 Darwin/15.6.0 botocore/1.4.91

バージョンが古い場合は最新版に更新しましょう。

コマンド
sudo -H pip install -U awscli

0. 準備

1.1. 変数の確認

プロファイルが想定のものになっていることを確認します。

コマンド
aws configure list

結果(例)

        Name                    Value             Type    Location
        ----                    -----             ----    --------
     profile         iamFull-prjz-mbp13        env    AWS_DEFAULT_PROFILE
  access_key     ****************XXXX shared-credentials-file
  secret_key     ****************XXXX shared-credentials-file
      region                         ap-northeast-1  env    AWS_DEFAULT_REGION

AssumeRoleを利用している場合はprofileが ''と表示されます。 そ
れ以外のときにprofileが '' と表示される場合は、以下を実行して
ください。

変数の設定:

     export AWS_DEFAULT_PROFILE=<IAMユーザ名>

1. 事前作業

インスタンスプロファイル名の決定

変数の設定
IAM_INSTANCE_PROFILE_NAME='aws-opsworks-ec2-role'

同じ名前のインスタンスプロファイルが存在しないことを確認します。

コマンド
aws iam get-instance-profile \
        --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME}

結果(例):

  A client error (NoSuchEntity) occurred when calling the GetInstanceProfile operation: Instance Profile aws-opsworks-ec2-role cannot be found.

2. 本作業

インスタンスプロファイルの作成

変数の確認
cat << ETX

        IAM_INSTANCE_PROFILE_NAME: ${IAM_INSTANCE_PROFILE_NAME}

ETX
コマンド
aws iam create-instance-profile \
        --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME}

結果(例):

  {
    "InstanceProfile": {
      "InstanceProfileId": "AIPAxxxxxxxxxxxxxxxxx",
      "Roles": [],
      "CreateDate": "2017-02-13T01:23:45.678",
      "InstanceProfileName": "aws-opsworks-ec2-role",
      "Path": "/",
      "Arn": "arn:aws:iam::XXXXXXXXXXXX:instance-profile/aws-opsworks-ec2-role"
    }
  }

3. 事後作業

インスタンスプロファイルの確認

コマンド
aws iam get-instance-profile \
        --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME}

結果(例):

  {
    "InstanceProfiles": [
      {
          "InstanceProfileId": "AIPAJRUJIZXNNQU4R6VZM",
          "Roles": [],
          "CreateDate": "2017-02-13T01:23:45Z",
          "InstanceProfileName": "aws-opsworks-ec2-role",
          "Path": "/",
          "Arn": "arn:aws:iam::XXXXXXXXXXXX:instance-profile/aws-opsworks-ec2-role"
      }
    ]
  }

完了