

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

# Amazon S3 배포 작업 참조
<a name="action-reference-S3Deploy"></a>

Amazon S3 배포 작업을 사용하여 정적 웹 사이트 호스팅 또는 보관을 위해 Amazon S3 버킷에 파일을 배포합니다. 버킷에 업로드하기 전에 배포 파일을 추출할지 여부를 지정할 수 있습니다.

**참고**  
이 참조 주제에서는 CodePipeline의 Amazon S3 배포 작업에 대해 설명합니다. 여기서 배포 플랫폼은 호스팅용으로 구성된 Amazon S3 버킷입니다. CodePipeline에서의 Amazon S3 소스 작업에 대한 참조 정보는 [Amazon S3 소스 작업 참조](action-reference-S3.md)을 참조하세요.

**Topics**
+ [작업 유형](#action-reference-S3Deploy-type)
+ [구성 파라미터](#action-reference-S3Deploy-config)
+ [입력 아티팩트](#action-reference-S3Deploy-input)
+ [출력 아티팩트](#action-reference-S3Deploy-output)
+ [서비스 역할 권한: S3 배포 작업](#edit-role-s3deploy)
+ [예제 작업 구성](#action-reference-S3Deploy-example)
+ [다음 사항도 참조하세요.](#action-reference-S3Deploy-links)

## 작업 유형
<a name="action-reference-S3Deploy-type"></a>
+ 범주: `Deploy`
+ 소유자: `AWS`
+ 공급자: `S3`
+ 버전: `1`

## 구성 파라미터
<a name="action-reference-S3Deploy-config"></a>

**BucketName**  
필수 항목 여부: 예  
파일을 배포할 Amazon S3 버킷 이름입니다.

**Extract**  
필수 항목 여부: 예  
true인 경우 업로드 전에 파일을 추출하도록 지정합니다. 그렇지 않으면 호스팅된 정적 웹 사이트의 경우처럼 애플리케이션 파일은 업로드를 위해 압축된 상태로 유지됩니다. false인 경우 `ObjectKey`는 필수 항목입니다.

**ObjectKey**  
조건부. `Extract` = false인 경우 필수  
S3 버킷의 객체를 고유하게 식별하는 Amazon S3 객체 키의 이름입니다.

**KMSEncryptionKeyARN**  
필수 여부: 아니요  
호스트 버킷에 대한 AWS KMS 암호화 키의 ARN입니다. AWS KMS key파라미터는 제공된 `KMSEncryptionKeyARN`를 사용하여 업로드된 아티팩트를 암호화합니다. KMS 키의 경우 키 ID, 키 ARN 또는 별칭 ARN을 사용할 수 있습니다.  
별칭은 KMS 키를 생성한 계정에서만 인식됩니다. 교차 계정 작업의 경우 키 ID 또는 키 ARN만 사용하여 키를 식별할 수 있습니다. 계정 간 작업에는 다른 계정(AccountB)의 역할을 사용하는 것이 포함되므로 키 ID를 지정하면 다른 계정(AccountB)의 키가 사용됩니다.
CodePipeline은 대칭 KMS 키만 지원합니다. 비대칭 KMS 키를 사용하여 S3 버킷의 데이터를 암호화하지 마십시오.

**CannedACL**  
필수 여부: 아니요  
`CannedACL` 파라미터는 Amazon S3에 배포된 객체에 지정된 [미리 준비된 ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl)을 적용합니다. 이는 객체에 적용된 기존 ACL을 덮어씁니다.

**CacheControl**  
필수 여부: 아니요  
`CacheControl` 파라미터는 버킷의 객체에 대한 요청/응답의 캐싱 동작을 제어합니다. 유효한 값 목록의 경우 HTTP 작업에 대한 [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) 헤더 필드를 확인합니다. `CacheControl`에 여러 값을 입력하려면 각 값 사이에 쉼표를 사용합니다. 이 CLI용 예제와 같이 각 쉼표 뒤에 공백을 추가할 수 있습니다(선택 사항).  

```
"CacheControl": "public, max-age=0, no-transform"
```

## 입력 아티팩트
<a name="action-reference-S3Deploy-input"></a>
+ **아티팩트 수:** `1`
+ **설명:** 배포 또는 보관용 파일은 소스 리포지토리에서 가져와서 CodePipeline으로 압축하고 업로드합니다.

## 출력 아티팩트
<a name="action-reference-S3Deploy-output"></a>
+ **아티팩트 수:** `0` 
+ **설명:** 이 작업 유형에는 출력 아티팩트가 적용되지 않습니다.

## 서비스 역할 권한: S3 배포 작업
<a name="edit-role-s3deploy"></a>

S3 배포 작업 지원의 경우 다음을 정책 설명에 추가합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:PutObjectVersionAcl",
        "s3:GetBucketVersioning",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::[[s3DeployBuckets]]",
        "arn:aws:s3:::[[s3DeployBuckets]]/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

S3 배포 작업 지원의 경우 S3 객체에 태그가 있는 경우 정책 설명에 다음 권한도 추가해야 합니다.

```
"s3:GetObjectTagging",
"s3:GetObjectVersionTagging",
"s3:PutObjectTagging"
```

## 예제 작업 구성
<a name="action-reference-S3Deploy-example"></a>

다음은 작업 구성에 대한 예제을 보여 줍니다.

### `Extract`를 `false`로 설정한 경우의 구성 예제
<a name="action-reference-S3Deploy-extractfalse"></a>

다음 예제는 `Extract` 필드가 `false`로 설정된 상태에서 작업을 만들 때의 기본 작업 구성을 보여줍니다.

------
#### [ YAML ]

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: S3
      Version: '1'
    RunOrder: 1
    Configuration:
      BucketName: website-bucket
      Extract: 'false'
      ObjectKey: MyWebsite
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "S3",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "BucketName": "website-bucket",
                "Extract": "false",
                "ObjectKey": "MyWebsite"
                },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

### `Extract`를 `true`로 설정한 경우의 구성 예제
<a name="action-reference-S3Deploy-extracttrue"></a>

다음 예제는 `Extract` 필드가 `true`로 설정된 상태에서 작업을 만들 때의 기본 작업 구성을 보여줍니다.

------
#### [ YAML ]

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: S3
      Version: '1'
    RunOrder: 1
    Configuration:
      BucketName: website-bucket
      Extract: 'true'
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "S3",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "BucketName": "website-bucket",
                "Extract": "true"
                },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

## 다음 사항도 참조하세요.
<a name="action-reference-S3Deploy-links"></a>

이 작업을 수행할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.
+ [자습서: Amazon S3를 배포 공급자로 사용하는 파이프라인 생성](tutorials-s3deploy.md) - 이 자습서에서는 S3 배포 작업을 사용하여 파이프라인을 생성하는 두 가지 예제를 안내합니다. 샘플 파일을 다운로드하고, CodeCommit 리포지토리에 파일을 업로드하고, S3 버킷을 생성하고, 호스팅용 버킷을 구성합니다. 그런 다음 CodePipeline 콘솔을 사용하여 파이프라인을 생성하고 Amazon S3 배포 구성을 지정합니다.
+ [Amazon S3 소스 작업 참조](action-reference-S3.md) - 이 작업 참조는 CodePipeline의 Amazon S3 소스 작업에 대한 참조 정보와 예제를 제공합니다.