AWS CLIを利用して、IAMロールからポリシーを削除してみます。

前提条件

IAMへの権限

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

AWS CLIのバージョン

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

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

結果(例):

  aws-cli/1.11.70 Python/2.7.12 Linux/4.4.11-23.53.amzn1.x86_64 botocore/1.5.33

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

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

0. 準備

まず変数の確認をします。

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}

ETX

結果(例):

  AWS_DEFAULT_PROFILE: (0.1) <IAMのフル権限を許可されたプロファイル>

変数が入っていない、適切でない場合は、それぞれの手順番号について作業を
行います。

0.1. プロファイルの指定

プロファイルの一覧を確認します。

コマンド
cat ~/.aws/credentials \
       | grep '\[' \
       | sed 's/\[//g' | sed 's/\]//g'

結果(例):

  iamFull-prjz-mbpr13
  <IAMのフル権限を許可されたプロファイル>
変数の設定
export AWS_DEFAULT_PROFILE='<IAMのフル権限を許可されたプロファイル>'

最終確認

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}

ETX

結果(例):

  AWS_DEFAULT_PROFILE: (0.1) <IAMのフル権限を許可されたプロファイル>

1. 事前作業

1.1. IAMロール名の指定

変数の設定
IAM_ROLE_NAME='<対象となるIAMロール>'

1.2. ロールポリシの確認

コマンド
aws iam list-attached-role-policies \
        --role-name ${IAM_ROLE_NAME}

結果(例):

  {
    "AttachedPolicies": [
      {
        "PolicyName": "<削除対象のIAMポリシー>",
        "PolicyArn": "arn:aws:iam::XXXXXXXXXXXX:policy/<削除対象のIAMポリシー>"
      }
    ]
  }

1.3. IAMロールポリシーの決定

変数の設定
IAM_POLICY_NAME='<削除対象のIAMポリシー>'

2. ロールポリシーの適用

ロールポリシーの適用

ロールポリシーをIAMロールから削除します。

変数の確認
cat << ETX

        IAM_ROLE_NAME:  ${IAM_ROLE_NAME}
        IAM_POLICY_ARN: ${IAM_POLICY_ARN}

ETX
コマンド
aws iam detach-role-policy \
        --role-name ${IAM_ROLE_NAME} \
        --policy-arn ${IAM_POLICY_ARN}

結果(例):

  (戻り値なし)

3. 事後作業

ロールポリシーの確認

IAMロールのロールポリシーを確認します。

コマンド
aws iam list-attached-role-policies \
        --role-name ${IAM_ROLE_NAME}

結果:

  {
      "AttachedPolicies": [], 
  }

完了