AWS Compute Optimizer の Amazon S3 バケットポリシー - AWS Compute Optimizer

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Compute Optimizer の Amazon S3 バケットポリシー

Amazon Simple Storage Service (Amazon S3) バケットに Compute Optimizer のレコメンデーションをエクスポートできます。レコメンデーションは CSV ファイルとしてエクスポートされ、メタデータは JSON ファイルとしてエクスポートされます。詳細については、「レコメンデーションをエクスポート」を参照してください。

エクスポート ジョブを作成する前に、まずレコメンデーションのエクスポート先の S3 バケットを作成する必要があります。Compute Optimizer は S3 バケットを作成しません。レコメンデーションのエクスポートファイルに指定する S3 バケットはパブリックにアクセスできず、リクエスタ支払いバケットとして設定することもできません。セキュリティベストプラクティスとして、Compute Optimizer エクスポートファイルに専用の S3 バケットを作成します。詳細については、「Amazon S3 ユーザーガイド」の「S3 バケット作成方法」を参照してください。

レコメンデーションのエクスポート用に既存のバケットを指定する

S3 バケットを作成した後、次の手順に従って、Compute Optimizer が推奨エクスポート ファイルをバケットに書き込むことを許可するポリシーを S3 バケットに追加します。

  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. Compute Optimizer がエクスポートファイルを配信するバケットを選択します。

  3. [Permissions] を選択します。

  4. [バケットポリシー] を選択します。

  5. 次のポリシーのいずれかをコピーし、[バケットポリシーエディタ] テキストボックスに貼り付けます。

  6. ポリシーの次のプレースホルダテキストを置き換えます。

    • myBucketNameを バケットの名前に置き換えます。

    • OptionalPrefix をオプションのオブジェクトプレフィックスに置き換えます。

    • MyRegion をソース AWS リージョン に置き換えてください。

    • myAccountId を、エクスポートジョブのリクエスタのアカウント番号に置き換えます。

  7. ポリシーには次の 3 つのステートメントをすべて含めてください。

    1. 最初のステートメント (GetBucketAcl アクション用) で、Compute Optimizer にバケットのアクセスコントロールリスト (ACL) の取得を許可します。

    2. 2 番目のステートメント (GetBucketPolicyStatus アクション用) で、Compute Optimizer にバケットがパブリックかどうかを示すバケットのポリシーステータスの取得を許可します。

    3. 3 番目のステートメント (PutObject アクション用) で、Compute Optimizer にバケットにエクスポートファイルを配置するための完全なコントロールを付与します。

    これらのステートメントのいずれかが欠落している場合、ポリシーのバケット名とオプションのオブジェクトプレフィックスがエクスポートリクエストで指定したものと一致しない場合、エクスポートリクエストは失敗します。ポリシーのアカウント番号がエクスポートジョブのリクエスタのアカウント番号と一致しない場合、エクスポートも失敗します。

    注記

    既存のバケットにすでに 1 つ以上のポリシーがアタッチされている場合は、そのポリシーに Compute Optimizer のアクセスに関するステートメントを追加します。バケットにアクセスするユーザーに適していることを確認するために、作成したアクセス権限のセットを評価します。

ポリシーオプション 1: オプションのプレフィックスを使用する

オブジェクトプレフィックスは、S3 バケット内のエクスポートファイルを整理する S3 オブジェクトキーへのオプションの追加です。推奨事項のエクスポートを作成するときにオブジェクトのプレフィックスを指定する場合は、次のポリシーを使用します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName" }, { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:GetBucketPolicyStatus", "Resource": "arn:aws:s3:::myBucketName" }, { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/optionalPrefix/compute-optimizer/myAccountID/*", "Condition": {"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:compute-optimizer:myRegion:myAccountID:*" } } } ] }
注記

compute-optimizer/myAccountID/ コンポーネントはオプションのプレフィックスの一部ではありません。Compute Optimizer は、指定したプレフィックスに追加されるバケットパスの optimizer/myAccountID/ 部分を作成します。

ポリシーオプション 2: オブジェクトプレフィックスなし

オブジェクトのプレフィックスを指定したくない場合は、次のポリシーを使用します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName" }, { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:GetBucketPolicyStatus", "Resource": "arn:aws:s3:::myBucketName" }, { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/compute-optimizer/myAccountID/*", "Condition": {"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:compute-optimizer:myRegion:myAccountID:*" } } } ] }

レコメンデーションのエクスポートに暗号化された S3 バケットを使用する

Compute Optimizer の推奨事項のエクスポート先として、Amazon S3 カスタマー管理キーまたは AWS Key Management Service (KMS) キーのいずれかで暗号化された S3 バケットを指定できます。

AWS KMS 暗号化を有効にして S3 バケットを使用するには、対称 KMS キーを作成する必要があります。対称 KMS キーは、Amazon S3 がサポートする唯一の KMS キーです。手順については、「AWS KMS デベロッパーガイド」の「キーの作成」を参照してください。KMS キーを作成したら、それを推奨事項のエクスポートに使用する予定の S3 バケットに適用します。詳細については、「 Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 のデフォルトバケット暗号化を有効にする」を参照してください。

次の手順を使用して、KMS キーを使用するために必要なアクセス許可を Compute Optimizer に付与します。この許可は、暗号化された S3 バケットに保存する際に、レコメンデーションエクスポートファイルを暗号化するためのものです。

  1. AWS KMS コンソール (https://console.aws.amazon.com/kms) を開きます。

  2. AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。

  3. 左のナビゲーションメニューで、[カスタマー管理キー] を選択します。

    注記

    Compute Optimizer の推奨エクスポートは、AWS マネージドキーで暗号化された S3 バケットには許可されません。

  4. エクスポート S3 バケットの暗号化に使用した KMS キーの名前を選択します。

  5. [キーポリシー] タブを選択して、次に [ポリシービューへの切り替え] を選択します。

  6. [編集] を選択して、キーポリシーを編集します。

  7. 次のポリシーのいずれかをコピーし、キーポリシーのステートメントセクションに貼り付けます。

  8. ポリシーの次のプレースホルダテキストを置き換えます。

    • MyRegion をソース AWS リージョン に置き換えます。

    • myAccountId をエクスポートリクエスタのアカウント番号に置き換えます。

    GenerateDataKey ステートメントにより、Compute Optimizer が AWS KMS API を呼び出して、レコメンデーションファイルを暗号化するためのデータキーを取得できるようになります。このようにして、アップロードされたデータ形式をバケットの暗号化設定に対応させることができます。それ以外の場合、Amazon S3 はエクスポートリクエストを拒否します。

    注記

    既存の KMSにすでに 1 つ以上のポリシーがアタッチされている場合は、それらのポリシーに Compute Optimizer アクセス用のステートメントを追加します。結果として得られる権限のセットを評価して、それらが KMS キーにアクセスするユーザーに適切であることを確認します。

Amazon S3 バケットキーが有効になっていない場合は、次のポリシーを使用します。

{ "Sid": "Allow use of the key to Compute Optimizer", "Effect": "Allow", "Principal": { "Service": "compute-optimizer.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:compute-optimizer:myRegion:myAccountID:*" } } }

Amazon S3 バケット キーが有効になっている場合は、次のポリシーを使用します。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 バケットキーを使用した SSE-KMS のコストの削減」を参照してください。

{ "Sid": "Allow use of the key to Compute Optimizer", "Effect": "Allow", "Principal": { "Service": "compute-optimizer.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:compute-optimizer:myRegion:myAccountID:*" } } }

その他のリソース

S3 バケットおよびポリシーの詳細については、「Amazon Simple Storage Service ユーザーガイド」を参照してください。