用に Amazon S3 に保存されているアーティファクトのサーバー側の暗号化を設定する CodePipeline - AWS CodePipeline

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

用に Amazon S3 に保存されているアーティファクトのサーバー側の暗号化を設定する CodePipeline

Amazon S3 アーティファクトのサーバー側の暗号化を設定するには、次の 2 つの方法があります。

  • CodePipeline は、Create Pipeline ウィザードを使用してパイプラインを作成する AWS マネージドキー と、S3 アーティファクトバケットとデフォルトを作成します。 AWS マネージドキー はオブジェクトデータとともに暗号化され、 によって管理されます AWS。

  • 独自の カスタマーマネージドキー を作成して管理できます。

重要

CodePipeline は、対称 KMS キーのみをサポートします。非対称キーを使用して S3 bucket のデータを暗号化しないでください。

デフォルトの S3 キーを使用している場合、この AWS マネージドキーを変更または削除することはできません。でカスタマーマネージドキーを使用して S3 バケット内のアーティファクトを AWS KMS 暗号化または復号する場合は、必要に応じてこのカスタマーマネージドキーを変更またはローテーションできます。

Amazon S3 は、バケットに格納されているすべてのオブジェクトに対してサーバー側の暗号化が必要な場合に使用できるバケットポリシーをサポートしています。例えば、SSE-KMS を使用したサーバー側の暗号化を要求する s3:PutObject ヘッダーがリクエストに含まれていない場合、次のバケットポリシーはすべてのユーザーに対し、オブジェクト (x-amz-server-side-encryption) をアップロードするアクセス許可を拒否します。

{ "Version": "2012-10-17", "Id": "SSEAndSSLPolicy", "Statement": [ { "Sid": "DenyUnEncryptedObjectUploads", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::codepipeline-us-west-2-89050EXAMPLE/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "aws:kms" } } }, { "Sid": "DenyInsecureConnections", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::codepipeline-us-west-2-89050EXAMPLE/*", "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }

サーバー側の暗号化と の詳細については AWS KMS、「サーバー側の暗号化を使用したデータの保護」および「 (SSE-KMS) に保存 AWS Key Management Service されている KMS キーによるサーバー側の暗号化を使用したデータの保護」を参照してください。

の詳細については AWS KMS、「 AWS Key Management Service デベロッパーガイド」を参照してください。

の表示 AWS マネージドキー

[パイプラインの作成] ウィザードを使用して最初のパイプラインを作成すると、パイプラインを作成したのと同じリージョンに S3 バケットが作成されます。バケットは、パイプラインアーティファクトを格納するために使用されます。パイプラインを実行すると、アーティファクトが、S3 バケットに入れられるか、そこから取得されます。デフォルトでは、 は AWS マネージドキー Amazon S3 ( aws/s3キー) の AWS KMS を使用して、 でサーバー側の暗号化 CodePipeline を使用します。 Amazon S3 これは AWS アカウントに AWS マネージドキー 作成され、保存されます。S3 バケットからアーティファクトを取得すると、 は CodePipeline 同じ SSE-KMS プロセスを使用してアーティファクトを復号します。

に関する情報を表示するには AWS マネージドキー
  1. にサインイン AWS Management Console し、 AWS KMS コンソールを開きます。

  2. ウェルカムページが表示される場合は、[今すぐ始める] を選択します。

  3. サービスのナビゲーションペインで、[AWS managed keys] を選択します。

  4. パイプラインのリージョンを選択します。例えば、パイプラインが us-east-2 に作成されている場合は、フィルタが 米国西部 (オハイオ州) に設定されていることを確認します。

    で使用できるリージョンとエンドポイントの詳細については CodePipeline、「 AWS CodePipeline エンドポイントとクォータ」を参照してください。

  5. リスト内のパイプラインに使用されるエイリアスがあるキー (デフォルトは aws/s3) を選択します。キーの基本情報が表示されます。

AWS CloudFormation または を使用して S3 バケットのサーバー側の暗号化を設定する AWS CLI

AWS CloudFormation または を使用してパイプライン AWS CLI を作成する場合は、サーバー側の暗号化を手動で設定する必要があります。上記のサンプルバケットポリシーを使用して、独自の カスタマーマネージド キー を作成します。デフォルトの AWS マネージドキーキーの代わりに独自のキーを使用することもできます。独自のキーを選択する理由には、次のようなものがあります。

暗号化のベストプラクティスでは、暗号化キーの広範な再利用を推奨していません。ベストプラクティスとして、キーを定期的にローテーションします。 AWS KMS キーの新しい暗号化マテリアルを作成するには、カスタマーマネージドキーを作成し、新しいカスタマーマネージドキーを使用するようにアプリケーションまたはエイリアスを変更します。または、既存の カスタマー管理キー の自動キーローテーションを有効にすることができます。

カスタマーマネージドキーをローテーションするには、「キーローテーション」を参照してください。

重要

CodePipeline は、対称 KMS キーのみをサポートします。非対称キーを使用して S3 bucket のデータを暗号化しないでください。