IAM チュートリアル: 請求コンソールへのアクセス権の付与 - AWS Identity and Access Management

IAM チュートリアル: 請求コンソールへのアクセス権の付与

AWS アカウント の所有者 (AWS アカウントのルートユーザー) は、IAM ユーザーとロールに AWS アカウント の AWS Billing and Cost Management データへのアクセス権を付与できます。このチュートリアルの手順は、事前にテストされたシナリオの設定に役立ちます。このシナリオでは、メインの AWS 本番稼働用アカウントに影響を与えることなく、請求アクセス許可の設定を実務的に体験できます。

前提条件

このチュートリアルの手順を実行する前に、次の準備を行います。

  • テスト用の AWS アカウントを作成します。

  • ルートユーザーとしてテスト用の AWS アカウント にサインインします。

  • チュートリアルで使用できるように、テストアカウントの AWS アカウント 番号を記録します。このチュートリアルでは、アカウント番号の例として 111122223333 を使用します。ステップでそのアカウント番号を使用する場合は必ず、テストアカウント番号に置き換えてください。

ステップ 1: テスト用の AWS アカウントで請求データへの IAM アクセスを有効にする

このシナリオでは、ルートユーザーとしてテスト用の AWS アカウントにサインインし、IAM に請求情報へのアクセスを付与します。IAM に請求情報へのアクセスを付与すると、IAM ユーザーとロールが AWS Billing and Cost Managementコンソールにアクセスできるようになります。この設定では、IAM ユーザーとロールにこれらのコンソールページに必要なアクセス許可が付与されるのではなく、必要な IAM ポリシーがある IAM ユーザーとロールがアクセスできるようにします。ポリシーが既に IAM ユーザーまたはロールにアタッチされていても、この設定が有効になっていない場合、それらのポリシーによって付与されたアクセス許可は有効になりません。

注記

AWS Organizations を使用して作成した AWS アカウント では、請求情報への IAM アクセスがデフォルトで有効になっています。

ステップ 2: テスト用のユーザーとグループを作成する

このシナリオでは、IAM ユーザーに請求コンソールへのアクセス権を付与し、2 人のユーザーを作成します。

  • Pat Candella

    Pat は財務部門のメンバーで、請求と支払いを担当しています。Pat には、AWS アカウント での請求情報へのフルアクセスが必要です。

  • Terry Whitlock

    Terry は IT サポート部門の一員です。ほとんどの場合、Terry は請求コンソールにアクセスする必要はありませんが、財務部門の社員の質問に答えるためにアクセスが必要な場合があります。

ステップ 3: AWS Billing コンソールへのアクセス権を付与するロールを作成する

IAM ロールは、特定の許可があり、 アカウントで作成できる IAM アイデンティティです。IAM ロールは IAM ユーザーと似ていて、どちらも AWS で実行できることとできないことを判別するアクセス許可ポリシーが付加された AWS ID です。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。また、ロールには標準の長期認証情報 (パスワードやアクセスキーなど) も関連付けられません。代わりに、ロールを引き受けると、ロールセッション用の一時的なセキュリティ認証情報が提供されます。ロールを使用して、通常は AWS リソースへのアクセス権のないユーザー、アプリケーション、サービスにそのアクセス権を委任できます。このシナリオでは、Terry Whitlock が請求コンソールにアクセスできるようにするロールを作成します。

ステップ 4: コンソールへのアクセスをテストする

中心となるタスクを完了したら、ポリシーをテストすることができます。テストにより、ポリシーが期待したとおりに動作することを確認できます。各ユーザーのアクセスをテストすることで、ユーザーが体験することを比較できます。

前提条件

このチュートリアルの手順を実行する前に、次の準備を行います。

  • テスト用の AWS アカウントを作成します。

  • ルートユーザーとしてテスト用の AWS アカウント にサインインします。

  • チュートリアルで使用できるように、テストアカウントの AWS アカウント 番号を記録します。このチュートリアルでは、アカウント番号の例として 111122223333 を使用します。ステップでそのアカウント番号を使用する場合は必ず、テストアカウント番号に置き換えてください。

ステップ 1: テスト用の AWS アカウントで請求データへの IAM アクセスを有効にする

このシナリオでは、ルートユーザーとしてテスト用の AWS アカウントにサインインし、IAM に請求情報へのアクセスを付与します。請求情報へのアクセスを付与すると、IAM ユーザーとロールが AWS Billing and Cost Managementコンソールにアクセスできるようになります。この設定では、IAM ユーザーとロールにこれらのコンソールページに必要なアクセス許可が付与されるのではなく、必要な IAM ポリシーがある IAM ユーザーとロールがアクセスできるようにするだけです。

注記

AWS Organizations を使用して作成した AWS アカウント では、請求情報への IAM アクセスがデフォルトで有効になっています。

請求情報とコスト管理コンソールへの IAM ユーザーおよびロールのアクセスをアクティベートするには
  1. ルートユーザー認証情報 (AWS アカウントの作成に使用した E メールアドレスとパスワード) で AWS Management Console にサインインします。

  2. ナビゲーションバーでアカウント名を選択してから、[アカウント] を選択します。

  3. ページを下にスクロールして、[請求情報への IAM ユーザーとロールのアクセス] セクションが見つかったら、[編集] を選択します。

  4. [Activate IAM Access] (アクセスのアクティブ化) チェックボックスをオンにして、Billing and Cost Management ページへのアクセスをアクティブ化します。

  5. [更新] を選択します。

    このページには、[IAM ユーザーとロールの請求情報へのアクセスがアクティブ化されています] というメッセージが表示されます。

このチュートリアルの次のステップでは、特定の請求機能へのアクセスを許可または拒否する IAM ポリシーをアタッチします。

ステップ 2: テスト用のユーザーとグループを作成する

テスト用の AWS アカウントには、ルートユーザー以外の ID は定義されていません。請求情報にアクセスできるようにするために、追加の ID を作成して、そこに請求情報へのアクセスを許可できるようにします。

テスト用のユーザーとグループを作成する
  1. [Root user] (ルートユーザー) を選択して AWS アカウント の E メールアドレスを入力し、アカウント所有者として IAM コンソールにサインインします。次のページでパスワードを入力します。

    注記

    ルートユーザーでは、「IAM ユーザーとしてサインイン」ページにサインインすることはできません。[IAM ユーザーのサインイン] ページが表示された場合、ページ下部付近で [ルートユーザーの電子メールを使用してサインインする] を選択します。ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドの「ルートユーザーとして AWS Management Console へサインインする」を参照してください。

  2. ナビゲーションペインで [ユーザー][ユーザーを追加] の順に選択します。

    注記

    IAM Identity Center を有効にしている場合は、AWS Management Console には、IAM Identity Center でユーザーのアクセスを管理するのが最善であることを示すメッセージが表示されます。このチュートリアルでは、請求情報にアクセスできるようにする方法について習得するために IAM ユーザーを作成します。IAM Identity Center でユーザーを作成した場合は、IAM ではなく IAM Identity Center を使用してこれらのユーザーまたはグループに [請求] アクセス許可セットを割り当てます。

  3. [User name] (ユーザー名) に「pcandella」と入力します。名前にスペースを含めることはできません。

  4. [ユーザーが AWS Management Console にアクセスできるようにする – オプション] の横にある選択ボックスを選択し、[IAM ユーザーを作成する] を選択します。

  5. [コンソールパスワード] で、[自動生成パスワード] を選択します。

  6. [ユーザーは次回のサインイン時に新しいパスワードを作成する必要があります (推奨)] の横にある選択ボックスのチェックを外してから、[次へ] を選択します。この IAM ユーザーはテスト用なので、認証手続きで使用するパスワードをダウンロードします。

  7. [権限の設定] ページの [権限オプション] の、[ユーザーをグループに追加] を選択します。次に、[ユーザーグループ][グループの作成] を選択します。

  8. [ユーザーグループの作成] ページの [ユーザーグループ名] に、BillingGroup と入力します。次に、[アクセス許可ポリシー] で、AWS 管理職務機能ポリシーの [請求] を選択します。

  9. [ユーザーグループの作成] を選択して [許可の設定] ページに戻ります。

  10. [ユーザーグループ] で、作成した BillingGroup の選択ボックスを選択します。

  11. [次へ] を選択して [確認と作成] ページに進みます。

  12. [確認して作成] ページで、新しいユーザーのユーザーグループメンバーシップのリストを確認します。続行する準備ができたら、[ユーザーの作成] を選択します。

  13. [パスワードを取得] ページで、[.csv ファイルをダウンロード] を選択し、ユーザーのサインイン情報 (接続 URL、ユーザー名、パスワード) を含む .csv ファイルを保存します。

    この IAM ユーザーとして AWS にサインインするときの参照用に、このファイルを保存します。

  14. [ユーザーリストに戻る] を選択します。

  15. この手順を以下のように変更して繰り返し、Terry Whitlock 用のユーザーとサポートユーザー用のグループを作成します。

    1. ステップ 3 で、[ユーザー名] に、「twhitlock」と入力します。

    2. ステップ 8 で、[ユーザーグループ名] に、「SupportGroup」と入力します。次に、[アクセス許可ポリシー] で、AWS 管理職務機能ポリシーの [SupportUser] を選択します。

新しい IAM ユーザー、グループ、ロールはコンソールリストで確認できます。作成した各アイテムについて、名前を選択して詳細を表示できます。ユーザーの詳細を表示すると、コンソールには、pcandella[アクセス許可ポリシー] として [請求] が、twhitlock[アクセス許可ポリシー] として [SupportUser] が一覧表示されます。

ポリシーを使用して IAM ユーザーに AWS Billing and Cost Management 機能へのアクセス権を付与する方法の詳細については、「AWS Billing ユーザーガイド」の「AWS Billing でアイデンティティベースのポリシー (IAM ポリシー) を使用する」を参照してください。

ステップ 3: AWS Billing コンソールへのアクセス権を付与するロールを作成する

ロールを使用して IAM ユーザーに請求コンソールへのアクセス権を付与できます。ロールは、ユーザーが必要なときに引き受けることができる一時的な認証情報を提供します。このチュートリアルでは、財務部門からのサポート依頼で問題の調査が必要な場合に、ユーザー twhitlock が請求情報にアクセスできる必要があります。

  1. [Root user] (ルートユーザー) を選択して AWS アカウント の E メールアドレスを入力し、アカウント所有者として IAM コンソールにサインインします。次のページでパスワードを入力します。

    注記

    ルートユーザーでは、「IAM ユーザーとしてサインイン」ページにサインインすることはできません。[IAM ユーザーのサインイン] ページが表示された場合、ページ下部付近で [ルートユーザーの電子メールを使用してサインインする] を選択します。ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドの「ルートユーザーとして AWS Management Console へサインインする」を参照してください。

  2. ナビゲーションペインで [ユーザー] を選択し、ユーザー twhitlock を選択してユーザーの詳細を表示します。ユーザー twhitlock の ARN をクリップボードにコピーします。

  3. ナビゲーションペインで [ロール][ロールを作成] の順に選択します。

  4. [信頼されたエンティティを選択] ページで、[カスタム信頼ポリシー] を選択し、[ステートメントを編集] で次の項目を入力します。

    • [STS のアクションを追加] - AssumeRole が選択されていることを確認します。

    • [プリンシパルを追加] - [追加] を選択すると [プリンシパルを追加] ダイアログボックスが表示されます。[プリンシパルタイプ] には、[IAM ユーザー] を選択し、[ARN] にはステップ 16 でクリップボードにコピーしたユーザー twhitlock の ARN を貼り付けます。そして、[プリンシパルを追加] を選択します。

  5. [次へ] を選択して [許可を追加] ページに移動します。

  6. フィルターボックスの [許可ポリシー] に、「Billing」と入力して AWS 管理職務機能ポリシー [請求] を選択します。

  7. [次へ] を選択して、[名前、確認、作成] ページに移動します。[ロール名] に「TempBillingAccess」と入力し、[ロールを作成] を選択します。

    ロールが作成されたことが通知されます。ロールを表示すると、ロールの詳細が表示されます。[概要]セクションでは、次の情報をメモしておきます。

    • デフォルトでは、セッションの最大継続時間は 1 時間です。その期間が過ぎると、ロールを引き受けたユーザーはアカウントの基本的なアクセス許可に戻ります。ユーザーがロールのアクセス許可を引き続き使用したい場合は、ロールを再度切り替える必要があります。ロールを編集して最大期間を延長できます。セッションの期間は最長 12 時間まで可能です。

    • コンソールでロールを切り替えるためのリンク。リンクをコピーして、信頼ポリシーにプリンシパルとして追加したユーザーに直接提供できます。[信頼関係] タブから信頼ポリシーを表示および編集できます。

ステップ 4: コンソールへのアクセスをテストする

テストユーザーとしてサインインしてアクセスをテストし、ユーザーが体験することを確認することをお勧めします。次のステップを使用して、アクセス権限の違いを確認するために、両方のテストアカウントを使用してサインインします。

両方のテストユーザーでサインインして請求へのアクセスをテストするには
  1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して IAM コンソールにサインインします。

    注記

    利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある[別のアカウントにサインイン]を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

  2. 以下に示すステップを使用して各ユーザーにサインインし、さまざまなユーザー体験を比較できるようにします。

    フルアクセス

    1. ユーザー pcandella として AWS アカウント にサインインします。

    2. ナビゲーションバーで pcandella@111122223333 を選択し、次に [請求ダッシュボード] を選択します。

    3. 各ページを参照し、さまざまなボタンを選択して、完全な変更アクセス許可があることを確認します。

    アクセス権なし

    1. ユーザー twhitlock として AWS アカウント にサインインします。

    2. ナビゲーションバーで [twhitlock@111122223333] を選択し、次に [請求ダッシュボード] を選択します。

    3. You need permissions」というメッセージが表示されます。請求データは表示されません。

    ロールを切り替えてアクセス権を拡大

    1. ユーザー twhitlock として AWS アカウント にサインインします。

    2. ナビゲーションバーで [twhitlock@111122223333] を選択し、次に [ロールの切り替え] を選択します。

      [ロールの切り替え] ページが開きます。情報を以下のように入力します。

      • [アカウント]-111122223333

      • [ロール]-TempBillingAccess

      [ロールの切り替え] を選択します。

      または、[コンソールでロールを切り替えるためのリンク] に記載されている URL を使用して、[ロールの切り替え] ページを開くこともできます。

    3. コンソールには [AWS Billing ダッシュボード] が表示され、ナビゲーションバーには TempBillingAccess@111122223333 と表示されます。

まとめ

これで、IAM ユーザーに AWS Billing コンソールへのアクセス権を付与するために必要な手順が完了しました。その結果、ユーザーが請求コンソールで体験することがどのようなものかを直接確認できました。これで、このロジックを本稼働環境にいつでも実装できます。

関連リソース

AWS Billing ユーザーガイドの関連情報については、以下の関連リソースを参照してください。

IAM ユーザーガイド の関連情報については、以下の関連リソースを参照してください。