

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

# CodePipeline 用に Amazon S3 に保存したアーティファクトのサーバー側の暗号化を設定する
<a name="S3-artifact-encryption"></a>

Amazon S3 アーティファクトのサーバー側の暗号化を設定するには、次の 2 つの方法があります。
+ CodePipeline は、パイプラインの作成ウィザードを使用してパイプラインを作成する AWS マネージドキー ときに S3 アーティファクトバケットとデフォルトを作成します。 AWS マネージドキー はオブジェクトデータと共に暗号化され、 によって管理されます AWS。
+ 独自の カスタマーマネージドキー を作成して管理できます。

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

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

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

------
#### [ JSON ]

****  

```
{
    "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、[「サーバー側の暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)」および[「 (SSE-KMS) に保存 AWS Key Management Service されている KMS キーを使用したサーバー側の暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)」を参照してください。

詳細については AWS KMS、「 [AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/)」を参照してください。

**Topics**
+ [を表示する AWS マネージドキー](#S3-view-default-keys)
+ [CloudFormation または を使用して S3 バケットのサーバー側の暗号化を設定する AWS CLI](#S3-rotate-customer-key)

## を表示する AWS マネージドキー
<a name="S3-view-default-keys"></a>

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

**に関する情報を表示するには AWS マネージドキー**

1. にサインイン AWS マネジメントコンソール し、 AWS KMS コンソールを開きます。

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

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

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

   CodePipeline で使用できるリージョンとエンドポイントの詳細については、「[AWS CodePipeline エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/codepipeline.html)」を参照してください。

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



## CloudFormation または を使用して S3 バケットのサーバー側の暗号化を設定する AWS CLI
<a name="S3-rotate-customer-key"></a>

 CloudFormation または を使用してパイプライン AWS CLI を作成する場合は、サーバー側の暗号化を手動で設定する必要があります。上記のサンプルバケットポリシーを使用して、独自のカスタマーマネージドキーを作成します。デフォルトの AWS マネージドキーキーの代わりに独自のキーを使用することもできます。独自のキーを選択する理由には、次のようなものがあります。
+ 組織のビジネス要件またはセキュリティ要件を満たすために、スケジュールに基づいてキーのローテーションをする必要があります。
+ 別の AWS アカウントに関連付けられたリソースを使用するパイプラインを作成する必要があります。これには、 カスタマーマネージドキー を使用する必要があります。詳細については、「[別の AWS アカウントのリソースを使用するパイプラインを CodePipeline に作成する](pipelines-create-cross-account.md)」を参照してください。

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

カスタマーマネージドキーをローテーションするには、「[キーローテーション](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)」を参照してください。

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