CodePipeline 用に Amazon S3 に保存したアーティファクトのサーバー側の暗号化を設定する
Amazon S3 アーティファクトのサーバー側の暗号化を設定するには、次の 2 つの方法があります。
-
CodePipeline は、Create Pipeline ウィザードを使用してパイプラインを作成すると、S3 アーティファクトバケットとデフォルトの AWS マネージドキー が作成されます。AWS マネージドキー はオブジェクトデータとともに暗号化され、AWS によって管理されます。
-
独自の カスタマーマネージドキー を作成して管理できます。
重要
CodePipeline は、対称 KMS キーのみを対応しています。非対称 KMS キーを使用して S3 bucket のデータを暗号化しないでください。
デフォルトの S3 キーを使用している場合、この を変更または削除することはできませんAWS マネージドキー カスタマーマネージドキーを使用して AWS KMS で S3 バケット内のアーティファクトを暗号化または復号する場合は、必要に応じてカスタマーマネージドキーを変更または更新できます。
Amazon S3 は、バケットに格納されているすべてのオブジェクトに対してサーバー側の暗号化が必要な場合に使用できるバケットポリシーをサポートしています。例えば、SSE-KMS を使用したサーバー側の暗号化を要求する s3:PutObject ヘッダーがリクエストに含まれていない場合、次のバケットポリシーはすべてのユーザーに対し、オブジェクト (x-amz-server-side-encryption) をアップロードするアクセス許可を拒否します。
サーバー側の暗号化および AWS KMS の詳細に関しては、「サーバー側の暗号化を使用したデータの保護」および「AWS Key Management Service (SSE-KMS) に保存されているサーバー側の暗号化を使用してデータを保護する」を参照してください。
AWS KMS の詳細については、「AWS Key Management Service デベロッパーガイド」を参照してください。
AWS マネージドキー の表示
[パイプラインの作成] ウィザードを使用して最初のパイプラインを作成すると、パイプラインを作成したのと同じリージョンに S3 バケットが作成されます。バケットは、パイプラインアーティファクトを格納するために使用されます。パイプラインを実行すると、アーティファクトが、S3 バケットに入れられるか、そこから取得されます。CodePipeline は、デフォルトでは、サーバー側の暗号化を使用します。AWS マネージドキー を使用して AWS KMS を Amazon S3 (aws/s3 キー) に使用します。この AWS マネージドキー は、AWS アカウントに作成され、保存されます。アーティファクトが S3 バケットから取得されると、CodePipeline は同じ SSE-KMS プロセスを使用してアーティファクトを復号化します。
自分の に関する情報の表示AWS マネージドキー
-
AWS マネジメントコンソール にサインインして、AWS KMS コンソールを開きます。
-
ウェルカムページが表示される場合は、[今すぐ始める] を選択します。
-
サービスのナビゲーションペインで、[AWS managed keys] を選択します。
-
パイプラインのリージョンを選択します。例えば、パイプラインが
us-east-2に作成されている場合は、フィルタが 米国西部 (オハイオ州) に設定されていることを確認します。CodePipeline で使用できるリージョンとエンドポイントの詳細については、「AWS CodePipeline エンドポイントとクォータ」を参照してください。
-
リスト内のパイプラインに使用されるエイリアスがあるキー (デフォルトは aws/s3) を選択します。キーの基本情報が表示されます。
CloudFormation または AWS CLI を使用して S3 バケットのサーバー側の暗号化を設定する
CloudFormation または AWS CLI を使用してパイプラインを作成する際は、サーバー側の暗号化を手動で設定する必要があります。上記のサンプルバケットポリシーを使用して、独自のカスタマーマネージドキーを作成します。デフォルトの キーの代わりに独自のキーを使用することもできますAWS マネージドキー 独自のキーを選択する理由には、次のようなものがあります。
-
組織のビジネス要件またはセキュリティ要件を満たすために、スケジュールに基づいてキーのローテーションをする必要があります。
-
別の AWS アカウントに関連付けられたリソースを使用するパイプラインを作成する必要があります。これには、 カスタマーマネージドキー を使用する必要があります。詳細については、「他の AWS アカウントからリソースを使用するパイプラインを CodePipeline で作成する方法について説明します。」を参照してください。
暗号化のベストプラクティスでは、暗号化キーの広範な再利用を推奨していません。ベストプラクティスとして、キーを定期的にローテーションします。AWS KMS キーの新しい暗号化マテリアルを作成するために、カスタマーマネージドキーを作成し、アプリケーションまたはエイリアスを変更して新しいカスタマーマネージドキーを使用できます。または、既存の カスタマー管理キー の自動キーローテーションを有効にすることができます。
カスタマーマネージドキーをローテーションするには、「キーローテーション」を参照してください。
重要
CodePipeline は、対称 KMS キーのみを対応しています。非対称 KMS キーを使用して S3 bucket のデータを暗号化しないでください。