【AWSチュートリアル】IAMロールを準備する。(AWS構築用のIAMロールにスイッチしてTerraformが実行できるようにする。)

AWS
スポンサーリンク

AWSチュートリアル1回目。

Terraformの実行に必要な各種IAMリソースを作成していきます。

スポンサーリンク

なぜスイッチロールするのか?

スイッチロールを利用することで、権限を持っていないユーザーに対して一時的に権限を付与させることができます。(Linuxの sudo su コマンドに似ているイメージ)

スイッチロールのイメージ

今回は、特定のIAMグループに所属しているIAMユーザーだけがスイッチロールできるような仕組みを作成していきます。「IAMユーザーに直接権限付与すれば?」と思うかもしれませんが、以下のようなメリットを受けたいためスイッチロールする手段を選択しました。

メリット
  • IAMユーザー毎に権限を管理しなくてよくなる。
  • IAMユーザーには権限を付与しないため、認証情報が流出したときの被害を多少軽減できる。
  • スイッチロールは実務でもよく使われるので、慣れておくとGood!
デメリット
  • Terraform実行するときに追加でスイッチロールするための設定が必要。(別記事で紹介)

上述を踏まえ、

  1. 最低限の権限を持ったIAMユーザーを用意。
  2. AWS構築用の権限を持ったIAMロールを作成。
  3. Terraformは、2で作成したIAMロールにスイッチして実行する

という環境を作っていきます。

それではやってみましょう!

IAMグループを作成する。

「study-infra-swith-terraform-role」というIAMグループを作成していきます。

1.「グループを作成」をクリックする。

IAMグループ作成手順01

2−1.グループ名を入力する。

IAMグループ作成手順02

ユーザーの追加は別途行う予定なので、ここではスキップ。

2−2.「グループを作成」をクリックする。

IAMグループ作成手順03

3.グループの作成が完了!

IAMグループ作成手順04

IAMグループにユーザーを追加する。

「study-infra-swith-terraform-role」グループにIAMユーザーを追加します。

1.「ユーザーを追加」をクリックする。

IAMグループにユーザー追加手順01

2.ユーザーを追加する。

IAMグループにユーザー追加手順02

複数のユーザーにチェックを入れるとまとめて追加することができます。

3.ユーザー追加が完了!

IAMグループにユーザー追加手順03

IAMロールを作成する。

スイッチ先のIAMロール「study-infra-terraform-role」を作成します。

1.「ロールを作成」をクリックする。

IAMロール作成手順01

2.信頼ポリシーを作成する。

IAMロール作成手順02

信頼ポリシーでは、「このIAMロールにスイッチできる対象を許可する」という設定を行います。

今回は、スイッチ先のAWSアカウントIDを「アカウントID」に入力してください。

ちなみに↑の手順で、以下の信頼ポリシーが作成されます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::93XXXXXXX6:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}

プリンシパル(Principal)にAWSアカウントを指定したい場合は、"AWS": "arn:aws:iam::93XXXXXXX6:root" と指定します。

3.AdministratorAccessポリシーを付与する。

IAMロール作成手順03

各種リソースの構築を行うので「AdministratorAccess」を付与します。

4.「次のステップ:確認」をクリックする。

IAMロール作成手順04

5.ロールを作成する。

IAMロール作成手順05

6.ロールの作成が完了!

IAMロール作成手順06

IAMグループにポリシーを追加する。

「study-infra-swith-terraform-role」グループが「study-infra-terraform-role」ロールにスイッチできるようにIAMポリシーを作成します。

1.グループに対してインラインポリシーを作成する。

IAMポリシー作成手順01

2.ポリシーを入力する。

IAMポリシー作成手順02

入力するポリシーは以下の通り。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": [
                "arn:aws:iam::93XXXXXX6:role/study-infra-terraform-role"
            ]
        }
    ]
}

arn:aws:iam::93XXXXXX6:role/study-infra-terraform-role に対して sts:AssumeRole を許可するポリシーになっています。

3.ポリシーを作成する。

IAMポリシー作成手順03

4.ポリシーの付与が完了!

IAMポリシー作成手順04

スイッチロールをしてみる。

それでは、作成した各種IAMリソースを使用してスイッチロールしてみましょう。

1.「ロールの切り替え」をクリックする。

WEBコンソールの右上にある、ユーザー名をクリックすると「ロールの切り替え」が表示されます。

スイッチロール手順01

2.スイッチ先の情報を入力する。

スイッチロール手順02
項目説明
アカウントスイッチ先のAWSアカウントID。
ロールスイッチ先のIAMロール名。
表示名Web画面上に表示する名前なので適当でOK。今回はstduy-infra。

3.IAMロールへのスイッチが完了!

スイッチロール手順03

ユーザー名が2で設定したstudy-infraに変わっていることが分かると思います。

これで「AdministratorAccess」権限を持ったIAMロールにスイッチできているので、各種リソースの構築が可能になっています。

お疲れ様でした。

これにて本記事は終了です。

プロフィール
この記事を書いた人
katsuya

SESからキャリアをスタートし、現在はフリーランスとして活動しています。フリーランスになってから6年で年収1,000万円を達成しました。「Study Infra」では、今までの経験やITインフラに関する情報を発信中です。

katsuyaをフォローする
AWSAWSチュートリアルIAM
スポンサーリンク
シェアする
katsuyaをフォローする

コメント

タイトルとURLをコピーしました