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

  • 0
    いいね
  • 0
    コメント

    前提条件

    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.2. IAMロール名の決定

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

    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"
          }
        ]
      }
    

    完了