【AWSハンズオン-03】開発で使用するIAMのセットアップ

AWSハンズオン
スポンサーリンク

本記事は、これからAWS上に各種サービスを作成するために必要なIAMをセットアップしていきます。

本記事の使い方

記事は、問題と解答で構成されています。

  • 問題は、上から順に進めてください。
  • 分からない問題があった場合は、先に解答を確認してください。
  • できれば、1つの問題も3回ぐらい手を動かして解いて、理解度を深めてください。
スポンサーリンク

本記事を通して学べるスキル

  • IAMユーザー、ポリシー、ロールをAWSマネジメントコンソールから作成する方法
  • スイッチロールのやり方

前提

  • AWSアカウントを作成していること。

問題

要件を満たす、IAMポリシーを作成してください。

要件
  • IAMポリシーの名前は「MfaOwnManage」を設定してください。
  • 設定するポリシーは後述するJSONをコピペしてください。

設定するポリシーは以下になります。
このポリシーでは、MFAデバイスの管理(MFA認証していない場合でも)することしか許可していません。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": [
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/*"
        },
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:GetMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice",
                "sts:GetSessionToken",
                "iam:GetAccountPasswordPolicy",
                "iam:ChangePassword"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}

要件を満たす、IAMロールを作成してください。

要件
  • IAMロールの名前は「CdkDeveloper」を設定してください。
  • 信頼されたエンティティタイプは「AWSアカウント」を選択し、「このAWSアカウント」を選択してください。
  • 許可ポリシーは「PowerUserAccess」をアタッチしてください。

要件を満たす、IAMユーザーを作成してください。

要件
  • ユーザー名は好きな名前を設定してください。
  • AWSマネジメントコンソールへのアクセスを有効化してください。
  • IAMユーザーの初期パスワードは、「自動作成されたパスワード」を選択してください。
  • 次回のサインイン時にパスワード初期化を強制させてください。
  • 既に作成した「MfaOwnManage」ポリシーをアタッチしてください。
  • ユーザー作成後に発行される「サインURLやユーザー名、パスワードが記載されたCSVファイル」をダウンロードして保管してください。

作成したIAMユーザーの詳細設定を行ってください。

要件
  • 要件許可ポリシーにて、インラインポリシーとして、CdkDeveloperロールにAssumeRoleするための許可設定を作成してください。
  • アクセスキーを発行して、ダウンロードしたCSVを保管してください。

作成したIAMユーザーでAWSマネジメントコンソールにログインして、設定を行ってください。

要件
  • 初期パスワードを変更してください。
  • MFA設定を行ってください。また、MFA設定後、サインアウトして再度ログインしてください。
  • CdkDeveloperロールにスイッチしてください。

解答

(解答)要件を満たす、IAMポリシーを作成してください。

(解答)要件を満たす、IAMロールを作成してください。

それでは、IAMロールを作成していきます。

AWSアカウントは、「このアカウント」を選択します。
今回は、同じAWSアカウント内に作成されたIAMユーザーがスイッチロールを行います。

 

AWS管理ポリシーである「PowerUserAccess」ポリシーをアタッチします。
IAM関連は読み取りしかできませんが、それ以外にはフルアクセスが許可されるとても強い権限になります。

豆知識

AWS管理ポリシーとは、AWSが管理・作成するポリシーのことです。
サービス毎や役割毎に作成されたポリシーが数多くあり、とても便利です。
ただ、ユーザー側で編集することができないので、より細かいアクセス制御が必要な場合は、自分で作成する必要があります。

 

お疲れ様でした。これでIAMロールの作成が完了です。

(解答)要件を満たす、IAMユーザーを作成してください。

次はIAMユーザーを作成していきます。

AWSマネジメントコンソールにアクセスできるIAMユーザーを作成する。

 

前提で作成した「MfaOwnManage」ポリシーをアタッチします。

 

サインURL、ユーザー名、コンソールパスワードが記載されたCSVファイルをダウンロードして、保管して下さい。
この一度切りしかダウンロードすることができないので、忘れずにダウンロードしてください。

 

次は、アクセスキーを作成します。
アクセスキーはCDKでAWSサービスを構築するときに利用します。

アクセスキー、シークレットアクセスキーが記載されたCSVファイルをダウンロードして、保管してください。
IAMユーザーの時と同様にこの1度切りしかダウンロードすることができないので、気を付けて下さい。

(解答)作成したIAMユーザーの詳細設定を行ってください。

それでは、作成したIAMユーザーで以下の作業を行っていきます。

  • 初期パスワードの変更
  • MFAデバイスの設定

MFAデバイスはGoogle Authenticatorなどを使って、画面に従って設定してください。

(解答)作成したIAMユーザーでAWSマネジメントコンソールにログインして、設定を行ってください。

前の作業で、MFAデバイスを設定してたため、サインアウトし、再度ログインしてください。

前の問題で作成した「CdkDeveloper」ロールをにスイッチするため、

これで、「CdkDeveloper」ロールの付与された権限で様々な作業を実施することができます。
IAMユーザーには、ほぼ権限を与えていなかったため、スイッチロールすることで閲覧できる内容が変わっていることが実感できると思います。

おわりに

お疲れ様でした。以上で、本記事は終了となります。
他にも問題を用意していくので是非ご覧ください。

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

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

katsuyaをフォローする
AWSハンズオン
スポンサーリンク
シェアする
katsuyaをフォローする
タイトルとURLをコピーしました