[JAWS-UG CLI] IAM #85 インスタンスプロファイルへのロール追加 (opsworksインスタンス用)

前提条件

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. 準備

0.1. 変数の確認

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

変数の確認
aws configure list

結果(例):

        Name                    Value             Type    Location
        ----                    -----             ----    --------
     profile       lambdaFull-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

0.2. インスタンスプロファイルの指定

インスタンスプロファイルを指定します。

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

0.3. IAMロールの指定

インスタンスプロファイルにアタッチするIAMロールを指定します。

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

1. 事前作業

インスタンスプロファイルを確認します。

コマンド
aws iam list-instance-profiles-for-role \
        --role-name ${IAM_ROLE_NAME} \
        --query 'InstanceProfiles[].InstanceProfileName'

結果(例):

  []

2. ロールのアタッチ

インスタンスプロファイルにロールをアタッチします。

変数の確認
cat << ETX

        IAM_INSTANCE_PROFILE_NAME: ${IAM_INSTANCE_PROFILE_NAME}
        IAM_ROLE_NAME:             ${IAM_ROLE_NAME}

ETX
コマンド
aws iam add-role-to-instance-profile \
        --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME} \
        --role-name ${IAM_ROLE_NAME}

結果:

  (戻り値なし)

3. 事後作業

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

コマンド
aws iam list-instance-profiles-for-role \
        --role-name ${IAM_ROLE_NAME} \
        --query 'InstanceProfiles[].InstanceProfileName'

結果(例):

  [
      "aws-opsworks-ec2-role"
  ]

完了