

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# CodePipeline의 Amazon S3에 저장된 아티팩트에 대해 서버 측 암호화 구성
<a name="S3-artifact-encryption"></a>

Amazon S3 아티팩트에 대해 서버 측 암호화를 구성하는 방법은 2가지입니다.
+ CodePipeline은 파이프라인 생성 마법사를 사용하여 파이프라인을 생성할 AWS 관리형 키 때 S3 아티팩트 버킷과 기본값을 생성합니다. AWS 관리형 키 는 객체 데이터와 함께 암호화되고에서 관리합니다 AWS.
+ 자체 고객 관리형 키를 만들고 관리할 수 있습니다.

**중요**  
CodePipeline은 대칭 KMS 키만 지원합니다. 비대칭 KMS 키를 사용하여 S3 버킷의 데이터를 암호화하지 마십시오.

기본 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"
                }
            }
        }
    ]
}
```

------

서버 측 암호화에 대한 자세한 내용은 [서버 측 암호화를 사용하여 데이터 보호](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) 및 (SSE-KMS)에 저장된 KMS 키를 사용한 서버 측 암호화를 사용하여 데이터 보호를 AWS KMS참조하세요. [AWS Key Management Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) 

에 대한 자세한 내용은 [AWS Key Management Service 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)를 AWS KMS참조하세요.

**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은 Amazon S3 AWS 관리형 키 용 (`aws/s3`키)를 AWS KMS 사용하여와 함께 서버 측 암호화를 사용합니다. AWS 관리형 키 이는 생성되어 AWS 계정에 저장됩니다. S3 버킷에서 아티팩트를 검색하면 CodePipeline이 동일한 SSE-KMS 프로세스를 이용해 아티팩트를 암호화합니다.

**에 대한 정보를 보려면 AWS 관리형 키**

1. 에 로그인 AWS Management Console 하고 AWS KMS 콘솔을 엽니다.

1. 시작 페이지가 나타나면 **지금 시작**을 선택합니다.

1. 서비스 탐색 창에서 **AWS 관리형 키**를 선택합니다.

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 계정에 연결된 리소스를 사용하는 파이프라인을 만들고 싶습니다. 이때 고객 관리형 키를 사용해야 합니다. 자세한 내용은 [CodePipeline에서 다른 AWS 계정의 리소스를 사용하는 파이프라인 생성](pipelines-create-cross-account.md) 단원을 참조하십시오.

암호화 모범 사례에 따르면 암호화 키를 광범위하게 사용하지 않는 것이 좋습니다. 키를 정기적으로 교체하는 것이 좋습니다. AWS KMS 키에 대한 새 암호화 구성 요소를 생성하려면 고객 관리형 키를 생성한 다음 새 고객 관리형 키를 사용하도록 애플리케이션 또는 별칭을 변경할 수 있습니다. 또는 기존 고객 관리형 키에 대해 자동 키 교체를 활성화할 수 있습니다.

고객 관리 키를 교체하려면 [키 교체](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)를 참조하세요.

**중요**  
CodePipeline은 대칭 KMS 키만 지원합니다. 비대칭 KMS 키를 사용하여 S3 버킷의 데이터를 암호화하지 마십시오.