AWS のコストと使用状況レポートの統合を設定して構成する

Amazon Web サービス (AWS) のコストと使用状況レポート (CUR) の統合では、Cost Management で AWS 支出を監視して制御します。 統合により、Azure portal の単一の場所で、Azure と AWS の両方での支出を監視して制御します。 この記事では、統合を設定し、Cost Management 機能を使用して、コストを分析し、予算を確認できるように構成する方法を説明します。

Cost Management では、レポート定義を取得し、レポートの GZIP CSV ファイルをダウンロードするために AWS アクセス資格情報を使用して、S3 バケットに格納されている AWS のコストと使用状況レポートを処理します。

AWS でコストと使用状況レポートを作成する

コストと使用状況レポートの使用は、AWS のコストを収集して処理するための AWS で推奨される方法です。 Cost Management クロス クラウド コネクタでは、管理 (統合) アカウント レベルで構成されたコストと使用状況レポートがサポートされています。 詳細については、「AWS Cost and Usage Report」 (AWS のコストと使用状況レポート) というドキュメントを参照してください。

AWS の Billing and Cost Management コンソールの [Cost & Usage Reports](コストと使用状況レポート) ページを使用して、以下の手順でコストと使用状況レポートを作成します。

  1. AWS Management コンソールにサインインし、[Billing and Cost Management](課金とコスト管理) コンソールを開きます。

  2. ナビゲーション ウィンドウで、[Cost & Usage Reports](コストと使用状況レポート) を選択します。

  3. [レポートの作成] を選択します。

  4. [レポート名] には、レポートの名前を入力します。

  5. [Additional report details] の下で [Include resource IDs] を選択します。

  6. [Data refresh settings](データ更新設定) では、お客様の請求確定後に AWS が返金、クレジット、またはサポート料金をお客様のアカウントに適用した場合に、AWS のコストと使用状況レポートを更新するかどうかを選択します。 レポートが更新されると、新しいレポートが Amazon S3 にアップロードされます。 この設定は選択されたままにしておくことをお勧めします。

  7. [次へ] を選択します。

  8. [S3 bucket](S3 バケット) には、 [構成] を選択します。

  9. [Configure S3 Bucket](S3 バケットの構成) ダイアログ ボックスで、バケット名と新しいバケットを作成するリージョンとを入力して [次へ] を選択します。

  10. [I have confirmed that this policy is correct] (このポリシーが正しいことを確認しました) を選択してから、[Save] (保存) を選択します。

  11. (省略可能) [Report path prefix](レポート パス プレフィックス) では、レポートの名前の先頭に追加するレポート パス プレフィックスを入力します。 プレフィックスを指定しない場合、既定のプレフィックスはレポートに指定した名前になります。 日付範囲は /report-name/date-range/ の形式です。

  12. [時間単位] で、[毎時間] を選択します。

  13. [Report versioning] (レポートのバージョン管理) では、レポートの各バージョンで前のバージョンを上書きするか、新しいレポートを追加するかを選択します。

  14. [Enable data integration for](データ統合の有効化対象) は、選択の必要はありません。

  15. [圧縮] では、 [GZIP] を選択します。

  16. [次へ] を選択します。

  17. レポートの設定を確認した後、 [Review and Complete](確認して完了) を選択します。

    レポート名をメモしておきます。 これは後の手順で使用します。

AWS で Amazon S3 バケットへのレポートの配信が開始されるまで、最大で 24 時間かかる場合があります。 配信が開始された後、AWS では、少なくとも 1 日 1 回は AWS のコストと使用状況レポート ファイルが更新されます。 配信の開始を待たずに、AWS 環境の構成を続行することができます。

Note

メンバー (リンク済み) アカウント レベルで構成されたコストと使用状況レポートは、現在サポートされていません。

AWS でロールとポリシーを作成する

Cost Management では、1 日数回、コストと使用状況レポートが配置されている S3 バケットにアクセスします。 このサービスでは、新しいデータを確認するために資格情報へのアクセスが必要です。 Cost Management によるアクセスを許可するには、AWS でロールとポリシーを作成します。

Cost Management で AWS アカウントへのロールベースのアクセスを有効にするために、AWS コンソールでロールが作成されます。 AWS コンソールからの ロール ARN外部 ID が必要です。 後で、Cost Management の [AWS コネクタの作成] ページでこれらを使用します。

[新しいロールの作成] ウィザードを使用します。

  1. AWS コンソールにサインインし、 [サービス] を選択します。
  2. サービスの一覧で [IAM] を選択します。
  3. [ロール] を選択してから [ロールの作成] を選択します。
  4. [Select trusted entity] (信頼されたエンティティの選択) ページで [AWS アカウント] を選択し、[An AWS account] (ある AWS アカウント) の下で [Another AWS account] (別の AWS アカウント) を選択します。
  5. [アカウント ID] の下に、「432263259397」と入力します。
  6. [オプション] の下で、[Require external ID (Best practice when a third party will assume this role)] (外部 ID が必要 (サード パーティでこのロールを想定する場合のベスト プラクティス)) を選択します。
  7. [外部 ID] に、外部 ID を入力します。これは、AWS ロールと Cost Management 間の共有パスコードです。 Cost Management の [新しいコネクタ] ページでも同じ外部 ID が使用されます。 外部 ID を入力する場合には、強力なパスコードポリシーを使用するようお勧めします。

    Note

    [MFA の要求] の選択は変更しないでください。 クリアされたままにしておく必要があります。

  8. Permissions(次へ: アクセス許可) をクリックします。
  9. [ポリシーの作成] を選択します。 新しいブラウザー タブが開きます。ここでポリシーを作成します。
  10. [サービスの選択] を選択します。

コストと使用状況レポートのアクセス許可を構成します。

  1. Cost and Usage Report」と入力します。
  2. [アクセス レベル]>[読み取り]>DescribeReportDefinitions の順に選択します。 この手順により、Cost Management では、定義されている CUR レポートを読み取り、レポート定義の前提条件が一致するかどうかを判断できます。
  3. [Add additional permissions](さらにアクセス許可を追加) を選択します。

S3 バケットとオブジェクトのアクセス許可を構成します。

  1. [サービスの選択] を選択します。
  2. S3」と入力します。
  3. [アクセス レベル]>[List](一覧表示)>ListBucket の順に選択します。 このアクションでは、S3 バケット内のオブジェクトの一覧を取得します。
  4. [アクセス レベル]>[読み取り]>GetObject の順に選択します。 このアクションでは、課金ファイルのダウンロードを許可します。
  5. [リソース] を選択します。
  6. [bucket – Add ARN](バケット – ARN の追加) を選択します。
  7. [バケット名] に、CUR ファイルを格納するために使用されるバケットを入力します。
  8. [object – Add ARN](オブジェクト - ARN の追加) を選択します。
  9. [バケット名] に、CUR ファイルを格納するために使用されるバケットを入力します。
  10. [オブジェクト名] で、 [任意] を選択します。
  11. [Add additional permissions](さらにアクセス許可を追加) を選択します。

Cost エクスプローラーのアクセス許可を構成します。

  1. [サービスの選択] を選択します。
  2. Cost エクスプローラー サービス」と入力します。
  3. [All Cost Explorer Service actions (ce:*)](すべての Cost エクスプローラー サービス アクション (ce:*)) を選択します。 このアクションでは、コレクションが正しいことを検証します。
  4. [Add additional permissions](さらにアクセス許可を追加) を選択します。

AWS 組織へのアクセス許可を追加します。

  1. [組織] を入力します。
  2. [アクセス レベル]>[List](一覧表示)>ListAccounts の順に選択します。 このアクションでは、アカウントの名前を取得します。
  3. [さらにアクセス許可を追加] を選択します。

ポリシーのアクセス許可を構成する

  1. [IAM] を入力します。
  2. [アクセスレベル] > [リスト] >[ListAttachedRolePolicies][ListPolicyVersions][ListRoles] を選択します。
  3. [アクセス レベル] > [読み取り] >[GetPolicyVersion] と選択します。
  4. [リソース]> [<ポリシー>] を選択してから、[任意] を選択します。 これらのアクションによって、コネクタには最小限必要な一連のアクセス許可のみが付与されたことを検証できます。
  5. [<役割>] [ARN の追加] を選択します。 アカウント番号は自動的に入力されます。
  6. [ロール名とパス] にロール名を入力し、それをメモします。 これを、ロール作成の最後の手順で使用する必要があります。
  7. [追加] を選択します。
  8. タグを選択します。 使用するタグを入力することも、この手順をスキップすることもできます。 この手順は、Cost Management でコネクタを作成するためには必要ありません。
  9. [次へ : ポリシーの確認] を選択します。
  10. [ポリシーの確認] に、新しいポリシーの名前を入力します。 正しい情報を入力したことを確認してから、[ポリシーの作成] を選択します。
  11. 前のタブに戻り、ポリシーの一覧を更新します。 検索バーで、新しいポリシーを検索します。
  12. 確認\) をクリックします。
  13. IAM アクセス許可の構成時に定義してメモしたのと同じロール名を入力します。 正しい情報を入力したことを確認してから、[ロールの作成] を選択します。

ロールの作成時に前の手順で使用されたロール ARN と外部 ID をメモしておいてください。 これらは後で Cost Management コネクタを設定するときに使用します。

ポリシー JSON は次の例のようになるはずです。 bucketname は S3 バケットの名前に、accountname はお使いのアカウント番号に、rolename は作成したロール名に置き換えます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "organizations:ListAccounts",
                "iam:ListRoles",
                "ce:*",
                "cur:DescribeReportDefinitions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "iam:GetPolicyVersion",
                "iam:ListPolicyVersions",
                "iam:ListAttachedRolePolicies"
            ],
            "Resource": [
                "arn:aws:s3:::bucketname",
                "arn:aws:s3:::bucketname/*",
                "arn:aws:iam::accountnumber:policy/*",
                "arn:aws:iam::accountnumber:role/rolename"
            ]
        }
    ]
}

Azure で新しい AWS コネクタを設定する

AWS コネクタを作成し、AWS コストの監視を開始するには、次の情報を使用します。

注意

初期セットアップ中に自動更新の構成を [オン] に設定した場合、試用期間が終了しても Connector for AWS はアクティブなままになります。 それ以外の場合は、試用後にコネクタは無効になります。 完全に削除されるまでの 3 か月間、無効のままになる場合があります。 コネクタが削除された後、同じ接続を再アクティブ化することはできません。 無効になっているコネクタのサポートについて、または削除後に新しい接続を作成するには、Azure portal でサポート リクエストを作成します。

前提条件

  • 少なくとも 1 つの管理グループが有効になっていることを確認します。 サブスクリプションを AWS サービスにリンクするには、管理グループが必要です。 管理グループの作成方法の詳細については、Azure での管理グループの作成に関する記事をご覧ください。
  • 自分がサブスクリプションの管理者であることを確認します。
  • AWS でコストと使用状況レポートを作成する」セクションの説明に従って、新しい AWS コネクタに必要なセットアップを完了します。

新しいコネクタを作成する

  1. Azure portal にサインインします。
  2. [コストの管理と請求] に移動し、必要に応じて課金スコープを選択します。
  3. [コスト分析] を選択し、 [設定] を選択します。
  4. [AWS のコネクタ] を選択します。
  5. [コネクタの追加] を選択します。
  6. [コネクタの作成] ページで、 [表示名] にコネクタの名前を入力します。
    Example of the page for creating an AWS connector
  7. 必要に応じて、既定の管理グループを選択します。 検出されたすべてのリンクされたアカウントが格納されます。 これは後で設定できます。
  8. 継続処理を希望する場合は、 [課金] セクションで [自動更新][オン] にします。 自動オプションを選択した場合は、課金サブスクリプションを選択する必要があります。
  9. [ロール ARN] に、AWS でのロールの設定時に使用した値を入力します。
  10. [外部 ID] に、AWS でのロールの設定時に使用した値を入力します。
  11. [レポート名] に、AWS で作成した名前を入力します。
  12. [次へ][作成] の順に選択します。

新しい AWS スコープ、AWS 統合アカウントと AWS のリンクされたアカウント、およびそれらのコスト データが表示されるまで、数時間かかる場合があります。

コネクタを作成した後、アクセス制御をそれに割り当てることをお勧めします。 ユーザーには、新しく検出されたスコープへのアクセス許可が割り当てられます。AWS 統合アカウントと AWS のリンクされたアカウントです。 コネクタを作成するユーザーは、コネクタ、統合アカウント、およびすべてのリンクされたアカウントの所有者です。

検出後にユーザーにコネクタのアクセス許可を割り当てても、既存の AWS スコープにアクセス許可は割り当てられません。 代わりに、新しいリンクされたアカウントにのみ、アクセス許可が割り当てられます。

その他の手順を行う

  • まだ設定していない場合は、管理グループを設定します。
  • スコープ ピッカーに新しいスコープが追加されたことを確認します。 [更新] を選択して最新のデータを表示します。
  • [クラウド コネクタ] ページで、コネクタを選択し、 [請求先アカウントに移動する] を選択して、管理グループにリンクされたアカウントを割り当てます。

Note

管理グループは、Microsoft 顧客契約 (MCA) のお客様に対して現在サポートされていません。 MCA のお客様は、コネクタを作成し、ご自身の AWS データを表示できます。 ただし、MCA のお客様は、管理グループの下に Azure のコストと AWS コストをまとめて表示することはできません。

AWS コネクタを管理する

[AWS のコネクタ] ページでコネクタを選択した場合は、次の操作を行うことができます。

  • [請求先アカウントに移動する] を選択して、AWS 統合アカウントの情報を表示します。
  • [アクセスの制御] を選択して、コネクタのロール割り当てを管理します。
  • [編集] を選択して、コネクタを更新します。 AWS アカウント番号はロール ARN に表示されるため、変更できません。 ただし、新しいコネクタを作成することはできます。
  • [確認] を選択して、確認テストを再実行し、Cost Management でコネクタ設定を使用して、データを収集できることを確認します。

Example AWS connector details

Azure 管理グループを設定する

クラウド間のプロバイダーの情報を表示する単一の場所を作成するには、Azure サブスクリプションと AWS のリンクされたアカウントを同じ管理グループに配置します。 Azure 環境を管理グループでまだ構成していない場合は、「管理グループの初期セットアップ」を参照してください。

コストを分ける場合は、AWS のリンクされたアカウントのみを保持する管理グループを作成できます。

AWS 統合アカウントを設定する

AWS 統合アカウントは、複数の AWS アカウントの請求と支払いを結合します。 AWS のリンクされたアカウントとしても機能します。 AWS 統合アカウントの詳細は、AWS コネクタ ページ上のリンクを使用して表示できます。

Example details for an AWS consolidated account

ページからは、次のことを行うことができます。

  • [更新] を選択して、AWS のリンクされたアカウントと管理グループの関連付けを一括更新します。
  • [アクセスの制御] を選択して、スコープのロール割り当てを設定します。

AWS 統合アカウントのアクセス許可

既定では、AWS 統合アカウントのアクセス許可は、AWS コネクタのアクセス許可に基づいて、アカウントの作成時に設定されます。 コネクタの作成者は所有者です。

AWS 統合アカウントの [アクセス レベル] ページを使用して、アクセス レベルを管理します。 ただし、AWS のリンクされたアカウントは、AWS 統合アカウントへのアクセス許可を継承しません。

AWS のリンクされたアカウントを設定する

AWS のリンクされたアカウントは、AWS リソースが作成され、管理される場所です。 リンクされたアカウントは、セキュリティ境界としても機能します。

このページからは、次のことを行うことができます。

  • [更新] を選択して、AWS のリンクされたアカウントと管理グループの関連付けを更新します。
  • [アクセスの制御] を選択して、スコープのロール割り当てを設定します。

Example of the AWS Linked Account page

AWS のリンクされたアカウントのアクセス許可

既定では、AWS のリンクされたアカウントのアクセス許可は、AWS コネクタのアクセス許可に基づいて、作成時に設定されます。 コネクタの作成者は所有者です。 AWS のリンクされたアカウントの [アクセス レベル] ページを使用して、アクセス レベルを管理します。 AWS のリンクされたアカウントは、AWS 統合アカウントからアクセス許可を継承しません。

AWS のリンクされたアカウントは常に、それらが所属する管理グループからアクセス許可を継承します。

次のステップ