前提条件
IAMへの権限
IAMに対してフル権限があること。
AWS CLIのバージョン
以下のバージョンで動作確認済
- AWS CLI 1.11.14
コマンド
aws --version
結果(例):
aws-cli/1.11.14 Python/2.7.10 Darwin/15.6.0 botocore/1.4.71
バージョンが古い場合は最新版に更新しましょう。
コマンド
sudo -H pip install -U awscli
- 準備
=======
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='CodeDeployEC2InstanceProfile'
0.3. IAMロールの指定
インスタンスプロファイルにアタッチするIAMロールを指定します。
変数の設定
IAM_ROLE_NAME='CodeDeployEC2InstanceProfileRole'
- 事前作業
===========
インスタンスプロファイルを確認します。
コマンド
aws iam list-instance-profiles-for-role \
--role-name ${IAM_ROLE_NAME} \
--query 'InstanceProfiles[].InstanceProfileName'
結果(例):
[]
- ロールのアタッチ
===================
インスタンスプロファイルにロールをアタッチします。
変数の確認
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}
結果:
(戻り値なし)
- 事後作業
===========
インスタンスプロファイルの確認
コマンド
aws iam list-instance-profiles-for-role \
--role-name ${IAM_ROLE_NAME} \
--query 'InstanceProfiles[].InstanceProfileName'
結果(例):
[
"CodeDeployEC2InstanceProfile"
]