

# Amazon CloudFront용 Identity and Access Management
<a name="security-iam"></a>





AWS Identity and Access Management(IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있도록 지원하는 AWS 서비스입니다. IAM 관리자는 어떤 사용자가 CloudFront 리소스를 사용할 수 있는 **‘인증’(로그인) 및 **‘권한’(권한 있음)을 받을 수 있는지 제어합니다. IAM은 추가 비용 없이 사용할 수 있는 AWS 서비스입니다.

**Topics**
+ [고객](#security_iam_audience)
+ [ID를 통한 인증](#security_iam_authentication)
+ [정책을 사용하여 액세스 관리](#security_iam_access-manage)
+ [Amazon CloudFront와 함께 IAM을 사용하는 방법](security_iam_service-with-iam.md)
+ [Amazon CloudFront에 대한 자격 증명 기반 정책 예시](security_iam_id-based-policy-examples.md)
+ [AWSAmazon CloudFront용 관리형 정책](security-iam-awsmanpol.md)
+ [CloudFront의 서비스 연결 역할 사용](using-service-linked-roles.md)
+ [Amazon CloudFront 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md)

## 고객
<a name="security_iam_audience"></a>

AWS Identity and Access Management(IAM)를 사용하는 방법은 역할에 따라 다릅니다.
+ **서비스 사용자** - 기능에 액세스할 수 없는 경우 관리자에게 권한 요청(참조[Amazon CloudFront 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md))
+ **서비스 관리자** - 사용자 액세스 결정 및 권한 요청 제출([Amazon CloudFront와 함께 IAM을 사용하는 방법](security_iam_service-with-iam.md) 참조)
+ **IAM 관리자** - 액세스를 관리하기 위한 정책 작성([Amazon CloudFront에 대한 자격 증명 기반 정책 예시](security_iam_id-based-policy-examples.md) 참조)

## ID를 통한 인증
<a name="security_iam_authentication"></a>

인증은 ID 자격 증명을 사용하여 AWS에 로그인하는 방식입니다. AWS 계정 루트 사용자이나 IAM 사용자로, 또는 IAM 역할을 수임하여 인증(에 로그인)받아야 합니다.

AWS IAM Identity Center(IAM Identity Center), Single Sign-On 인증 또는 Google/Facebook 자격 증명과 같은 자격 증명 소스의 자격 증명을 사용하여 페더레이션 ID로 로그인할 수 있습니다. 로그인하는 방법에 대한 자세한 내용은 *AWS Sign-In사용 설명서*의 [AWS 계정에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 섹션을 참조하세요.

프로그래밍 방식 액세스를 위해 AWS는 요청에 암호화 방식으로 서명할 수 있는 SDK 및 CLI를 제공합니다. 자세한 내용은 *IAM 사용 설명서*의 [API 요청용 AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) 섹션을 참조하세요.

### AWS 계정 루트 사용자
<a name="security_iam_authentication-rootuser"></a>

 AWS 계정을 생성하는 경우에는 모든 AWS 서비스 서비스와 리소스에 대한 완전한 액세스 권한이 있는 AWS 계정 *루트 사용자*라는 단일 로그인 ID로 시작합니다. 일상적인 태스크에 루트 사용자를 사용하지 않을 것을 강력히 권장합니다. 루트 사용자 자격 증명이 필요한 작업은 *IAM 사용 설명서*의 [루트 사용자 자격 증명이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) 섹션을 참조하세요.

### 페더레이션 ID
<a name="security_iam_authentication-federated"></a>

가장 좋은 방법은 인간 사용자가 ID 공급자와의 페더레이션을 사용하여 임시 자격 증명으로 AWS 서비스에 액세스하도록 하는 것입니다.

*페더레이션 ID*는 엔터프라이즈 사용자 디렉터리, 웹 ID 제공업체 또는 Directory Service의 사용자로, ID의 자격 증명을 사용하여 AWS 서비스에 액세스합니다. 페더레이션 ID는 임시 자격 증명을 제공하는 역할을 수임합니다.

중앙 집중식 액세스 관리를 위해 AWS IAM Identity Center를 추천합니다. 자세한 정보는 *AWS IAM Identity Center사용 설명서*의 [What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)를 참조하세요.

### IAM 사용자 및 그룹
<a name="security_iam_authentication-iamuser"></a>

*[IAM 사용자](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*는 단일 개인 또는 애플리케이션에 대한 특정 권한을 가진 ID입니다. 장기 자격 증명이 있는 IAM 사용자 대신 임시 자격 증명을 사용하는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*에서 [임시 자격 증명을 사용하여 AWS에 액세스하려면 인간 사용자가 ID 제공업체와의 페더레이션을 사용하도록 요구](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)를 참조하세요.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)은 IAM 사용자 모음을 지정하고 대규모 사용자 집합에 대한 관리 권한을 더 쉽게 만듭니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 사용자 사용 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) 섹션을 참조하세요.

### IAM 역할
<a name="security_iam_authentication-iamrole"></a>

*[IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*은 임시 자격 증명을 제공하는 특정 권한이 있는 자격 증명입니다. [사용자에서 IAM 역할(콘솔)로 전환](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)하거나 AWS CLI 또는 AWS API 작업을 직접적으로 호출하여 역할을 수임할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [역할 수임 방법](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)을 참조하세요.

IAM 역할은 페더레이션 사용자 액세스, 임시 IAM 사용자 권한, 교차 계정 액세스, 교차 서비스 액세스 및 Amazon EC2에서 실행되는 애플리케이션에 유용합니다. 자세한 내용은 *IAM 사용 설명서*의 [교차 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

## 정책을 사용하여 액세스 관리
<a name="security_iam_access-manage"></a>

정책을 생성하고 AWS ID 또는 리소스에 연결하여 AWS에서 내 액세스를 제어합니다. 정책은 자격 증명이나 리소스와 연결될 때 해당 권한을 정의합니다. AWS는 보안 주체가 요청을 보낼 때 이러한 정책을 평가합니다. 대부분의 정책은 AWS에 JSON 문서로 저장됩니다. JSON 정책 문서에 대한 자세한 내용은 *IAM 사용 설명서*의 [JSON 정책 개요](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) 섹션을 참조하세요.

정책을 사용하여 관리자는 어떤 **보안 주체**가 어떤 **리소스**에 대해 어떤 **조건**에서 **작업**을 수행할 수 있는지 정의하여 누가 무엇을 액세스할 수 있는지 지정합니다.

기본적으로 사용자 및 역할에는 어떠한 권한도 없습니다. IAM 관리자는 IAM 정책을 생성하고 사용자가 수임할 수 있는 역할에 추가합니다. IAM 정책은 작업을 수행하기 위해 사용하는 방법과 관계없이 작업에 대한 권한을 정의합니다.

### ID 기반 정책
<a name="security_iam_access-manage-id-based-policies"></a>

ID 기반 정책은 ID(사용자, 사용자 그룹 또는 역할)에 연결하는 JSON 권한 정책 문서입니다. 이러한 정책은 자격 증명이 수행할 수 있는 작업, 대상 리소스 및 이에 관한 조건을 제어합니다. ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

ID 기반 정책은 *인라인 정책*(단일 ID에 직접 포함) 또는 *관리형 정책*(여러 ID에 연결된 독립 실행형 정책)일 수 있습니다. 관리형 정책 또는 인라인 정책을 선택하는 방법을 알아보려면 *IAM 사용 설명서*의 [관리형 정책 및 인라인 정책 중에서 선택](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) 섹션을 참조하세요.

### 리소스 기반 정책
<a name="security_iam_access-manage-resource-based-policies"></a>

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 예를 들어 IAM *역할 신뢰 정책* 및 Amazon S3 *버킷 정책*이 있습니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 리소스 기반 정책에서 [보안 주체를 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)해야 합니다.

리소스 기반 정책은 해당 서비스에 있는 인라인 정책입니다. 리소스 기반 정책에서는 IAM의 AWS관리형 정책을 사용할 수 없습니다.

### 기타 정책 유형
<a name="security_iam_access-manage-other-policies"></a>

AWS는 이러한 정책 타입이 부여하는 최대 권한을 설정할 수 있는 추가 정책 타입을 지지합니다.
+ **권한 경계** - ID 기반 정책에서 IAM 엔터티에 부여할 수 있는 최대 권한을 설정합니다. 자세한 정보는 *IAM 사용 설명서*의 [IAM 엔터티의 권한 범위](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)를 참조하세요.
+ **서비스 제어 정책(SCP)** - AWS Organizations내 조직 또는 조직 단위에 대한 최대 권한을 지정합니다. 자세한 내용은 AWS Organizations사용 설명서의 [서비스 제어 정책](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)을 참조하세요.**
+ **리소스 제어 정책(RCP)** – 계정의 리소스에 사용할 수 있는 최대 권한을 설정합니다. 자세한 내용은 *AWS Organizations사용 설명서*의 [리소스 제어 정책(RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)을 참조하세요.
+ **세션 정책** – 역할 또는 페더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 고급 정책입니다. 자세한 내용은 *IAM 사용 설명서*의 [세션 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)을 참조하세요.

### 여러 정책 유형
<a name="security_iam_access-manage-multiple-policies"></a>

여러 정책 유형이 요청에 적용되는 경우, 결과 권한은 이해하기가 더 복잡합니다. 여러 정책 유형이 관련될 때 AWS가 요청을 허용할지 여부를 결정하는 방법을 알아보려면 *IAM 사용 설명서*의 [정책 평가 로직](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)을 참조하세요.

# Amazon CloudFront와 함께 IAM을 사용하는 방법
<a name="security_iam_service-with-iam"></a>

IAM을 사용하여 CloudFront에 대한 액세스를 관리하기 전에 CloudFront와 함께 사용할 수 있는 IAM 기능을 알아보세요.






**Amazon CloudFront에서 사용할 수 있는 IAM 기능**  

| IAM 특성 | CloudFront 지원 | 
| --- | --- | 
|  [자격 증명 기반 정책](#security_iam_service-with-iam-id-based-policies)  |   예  | 
|  [리소스 기반 정책](#security_iam_service-with-iam-resource-based-policies)  |   아니요   | 
|  [정책 작업](#security_iam_service-with-iam-id-based-policies-actions)  |   예  | 
|  [정책 리소스](#security_iam_service-with-iam-id-based-policies-resources)  |   예  | 
|  [정책 조건 키(서비스별)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   예  | 
|  [ACL](#security_iam_service-with-iam-acls)  |   아니요   | 
|  [ABAC(정책 내 태그)](#security_iam_service-with-iam-tags)  |   부분  | 
|  [임시 자격 증명](#security_iam_service-with-iam-roles-tempcreds)  |   예  | 
|  [전달 액세스 세션(FAS)](#security_iam_service-with-iam-principal-permissions)  |   아니요   | 
|  [서비스 역할](#security_iam_service-with-iam-roles-service)  |   아니요   | 
|  [서비스 연결 역할](#security_iam_service-with-iam-roles-service-linked)  |   예  | 

CloudFront 및 기타 AWS 서비스에서 대부분의 IAM 기능을 사용하는 방법을 전체적으로 알아보려면 **IAM 사용 설명서에서 [IAM으로 작업하는 AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)를 참조하세요.

## CloudFront에 대한 자격 증명 기반 정책
<a name="security_iam_service-with-iam-id-based-policies"></a>

**ID 기반 정책 지원:** 예

ID 기반 정책은 IAM 사용자, 사용자 그룹 또는 역할과 같은 ID에 연결할 수 있는 JSON 권한 정책 문서입니다. 이러한 정책은 사용자 및 역할이 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 제어합니다. 자격 증명 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

IAM ID 기반 정책을 사용하면 허용되거나 거부되는 작업과 리소스뿐 아니라 작업이 허용되거나 거부되는 조건을 지정할 수 있습니다. JSON 정책에서 사용할 수 있는 모든 요소에 대해 알아보려면 *IAM 사용 설명서*의 [IAM JSON 정책 요소 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)를 참조하세요.

### CloudFront에 대한 자격 증명 기반 정책 예시
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



CloudFront 자격 증명 기반 정책 예시를 보려면 [Amazon CloudFront에 대한 자격 증명 기반 정책 예시](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

## CloudFront 내 리소스 기반 정책
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**리소스 기반 정책 지원:** 아니요 

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 리소스 기반 정책의 예제는 IAM *역할 신뢰 정책*과 Amazon S3 *버킷 정책*입니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 정책이 연결된 리소스의 경우 정책은 지정된 보안 주체가 해당 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 정의합니다. 리소스 기반 정책에서 [보안 주체를 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)해야 합니다. 위탁자에는 계정, 사용자, 역할, 페더레이션 사용자 또는 AWS 서비스가 포함될 수 있습니다.

교차 계정 액세스를 활성화하려는 경우, 전체 계정이나 다른 계정의 IAM 개체를 리소스 기반 정책의 보안 주체로 지정할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM에서 교차 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

## CloudFront 정책 작업
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**정책 작업 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

JSON 정책의 `Action`요소는 정책에서 액세스를 허용하거나 거부하는 데 사용할 수 있는 작업을 설명합니다. 연결된 작업을 수행할 수 있는 권한을 부여하기 위한 정책에 작업을 포함하세요.



CloudFront 작업 목록을 보려면 **서비스 권한 부여 참조에서 [Amazon CloudFront에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html#amazoncloudfront-actions-as-permissions)을 참조하세요.

CloudFront의 정책 작업은 작업 앞에 다음 접두사를 사용합니다.

```
cloudfront
```

단일 문에서 여러 작업을 지정하려면 쉼표로 구분합니다.

```
"Action": [
      "cloudfront:action1",
      "cloudfront:action2"
         ]
```





CloudFront 자격 증명 기반 정책 예시를 보려면 [Amazon CloudFront에 대한 자격 증명 기반 정책 예시](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

## CloudFront 정책 리소스
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**정책 리소스 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Resource` JSON 정책 요소는 작업이 적용되는 하나 이상의 객체를 지정합니다. 모범 사례에 따라 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)을 사용하여 리소스를 지정합니다. 리소스 수준 권한을 지원하지 않는 작업의 경우, 와일드카드(\$1)를 사용하여 해당 문이 모든 리소스에 적용됨을 나타냅니다.

```
"Resource": "*"
```

CloudFront 리소스 유형 및 해당 ARN 목록을 보려면 **서비스 승인 참조에서 [Amazon RDS에서 정의한 리소스](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html#amazoncloudfront-resources-for-iam-policies)를 참조하세요. 각 리소스의 ARN을 지정할 수 있는 작업을 알아보려면 [Amazon CloudFront에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html#amazoncloudfront-actions-as-permissions)을 참조하세요.





CloudFront 자격 증명 기반 정책 예시를 보려면 [Amazon CloudFront에 대한 자격 증명 기반 정책 예시](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

## CloudFront 정책 조건 키
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**서비스별 정책 조건 키 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Condition` 요소는 정의된 기준에 따라 문이 실행되는 시기를 지정합니다. 같음(equals) 또는 미만(less than)과 같은 [조건 연산자](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)를 사용하여 정책의 조건을 요청의 값과 일치시키는 조건식을 생성할 수 있습니다. 모든 AWS 전역 조건 키를 보려면 *IAM 사용자 설명서*의 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)를 참조하세요.

CloudFront 조건 키 목록을 보려면 **서비스 승인 참조의 [Amazon CloudFront에 사용되는 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html#amazoncloudfront-policy-keys)를 참조하세요. 조건 키를 사용할 수 있는 작업과 리소스를 알아보려면 [Amazon CloudFront에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html#amazoncloudfront-actions-as-permissions)을 참조하세요.

CloudFront 자격 증명 기반 정책 예시를 보려면 [Amazon CloudFront에 대한 자격 증명 기반 정책 예시](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

## CloudFront 내의 ACL
<a name="security_iam_service-with-iam-acls"></a>

**ACL 지원:** 아니요 

액세스 제어 목록(ACL)은 어떤 보안 주체(계정 멤버, 사용자 또는 역할)가 리소스에 액세스할 수 있는 권한을 가지고 있는지를 제어합니다. ACL은 JSON 정책 문서 형식을 사용하지 않지만 리소스 기반 정책과 유사합니다.

## CloudFront와 ABAC
<a name="security_iam_service-with-iam-tags"></a>

**ABAC 지원(정책의 태그):** 부분적

속성 기반 액세스 제어(ABAC)는 태그라고 불리는 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다. IAM 엔터티 및 AWS 리소스에 태그를 연결하면 보안 주체의 태그가 리소스 태그와 일치할 때 작업을 허용하도록 ABAC 정책을 설계할 수 있습니다.

태그에 근거하여 액세스를 제어하려면 `aws:ResourceTag/key-name`, `aws:RequestTag/key-name`또는 `aws:TagKeys`조건 키를 사용하여 정책의 [조건 요소](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)에 태그 정보를 제공합니다.

서비스가 모든 리소스 유형에 대해 세 가지 조건 키를 모두 지원하는 경우, 값은 서비스에 대해 **예**입니다. 서비스가 일부 리소스 유형에 대해서만 세 가지 조건 키를 모두 지원하는 경우, 값은 **부분적**입니다.

ABAC에 대한 자세한 내용은 *IAM 사용 설명서*의 [ABAC 권한 부여를 통한 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)를 참조하세요. ABAC 설정 단계가 포함된 자습서를 보려면 *IAM 사용 설명서*의 [속성 기반 액세스 제어(ABAC) 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)을 참조하세요.

CloudFront는 배포, 테넌트 또는 트러스트 스토어와 같은 태그를 지원하는 CloudFront 리소스에 대해 ABAC를 지원합니다.

## CloudFront에서 임시 보안 인증 정보 사용
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**임시 자격 증명 지원:** 예

임시 자격 증명은 AWS리소스에 대한 단기 액세스를 제공하며 페더레이션 또는 전환 역할을 사용할 때 자동으로 생성됩니다. AWS에서는 장기 액세스 키를 사용하는 대신 임시 자격 증명을 동적으로 생성할 것을 권장합니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 임시 보안 자격 증명](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 및 [IAM으로 작업하는 AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 섹션을 참조하세요.

## CloudFront에 대한 전달 액세스 세션
<a name="security_iam_service-with-iam-principal-permissions"></a>

**전달 액세스 세션(FAS) 지원:** 아니요 

 전달 액세스 세션(FAS)은 AWS 서비스를 직접 호출하는 위탁자의 권한과 요청하는 AWS 서비스를 함께 사용하여 다운스트림 서비스에 대한 요청을 수행합니다. FAS 요청 시 정책 세부 정보는 [전달 액세스 세션](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)을 참조하세요.

## CloudFront에 대한 서비스 역할
<a name="security_iam_service-with-iam-roles-service"></a>

**서비스 역할 지원:** 아니요 

 서비스 역할은 서비스가 사용자를 대신하여 작업을 수행하는 것으로 가정하는 [IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)입니다. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정 및 삭제할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 서비스 AWS에 권한을 위임할 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)을 참조하세요.

**주의**  
서비스 역할에 대한 권한을 변경하면 CloudFront 기능이 중단될 수 있습니다. CloudFront에서 관련 지침을 제공하는 경우에만 서비스 역할을 편집하세요.

## CloudFront 서비스 연결 역할
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**서비스 연결 역할 지원:** 예

 서비스 연결 역할은 AWS 서비스에 연결된 서비스 역할의 한 유형입니다. 서비스는 사용자를 대신하여 작업을 수행하기 위해 역할을 수임할 수 있습니다. 서비스 연결 역할은 AWS 계정에 나타나고, 서비스가 소유합니다. IAM 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집은 할 수 없습니다.

CloudFront는 서비스 연결 역할을 사용하여 사용자를 대신하여 작업을 수행합니다. CloudFront 서비스 연결 역할 생성 또는 관리에 대한 자세한 내용은 [CloudFront의 서비스 연결 역할 사용](using-service-linked-roles.md) 섹션을 참조하세요. Lambda@Edge 서비스 연결 역할을 만들거나 관리하는 방법에 대한 자세한 내용은 [Lambda@Edge의 서비스 연결 역할](lambda-edge-permissions.md#using-service-linked-roles-lambda-edge) 섹션을 참조하시기 바랍니다.

서비스 연결 역할 생성 또는 관리에 대한 자세한 내용은 [IAM으로 작업하는 AWS서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)를 참조하세요. **서비스 연결 역할** 열에서 `Yes`가 포함된 서비스를 테이블에서 찾습니다. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 **예(Yes)** 링크를 선택합니다.

# Amazon CloudFront에 대한 자격 증명 기반 정책 예시
<a name="security_iam_id-based-policy-examples"></a>

기본적으로 사용자 및 역할에는 CloudFront 리소스를 생성하거나 수정할 수 있는 권한이 없습니다. 사용자에게 사용자가 필요한 리소스에서 작업을 수행할 권한을 부여하려면 IAM 관리자가 IAM 정책을 생성하면 됩니다.

이러한 예제 JSON 정책 문서를 사용하여 IAM ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*의 [IAM 정책 생성(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)을 참조하세요.

각 리소스 유형에 대한 ARN 형식을 포함하여 CloudFront에서 정의한 작업 및 리소스 유형에 대한 자세한 내용은 **서비스 승인 참조의 [Amazon CloudFront에 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html)를 참조하세요.

**Topics**
+ [정책 모범 사례](#security_iam_service-with-iam-policy-best-practices)
+ [사용자가 자신의 고유한 권한을 볼 수 있도록 허용](#security_iam_id-based-policy-examples-view-own-permissions)
+ [프로그래밍 방식으로 CloudFront에 액세스할 수 있는 권한](#security_iam_id-based-policy-examples-programmatic-access-all)
+ [CloudFront 콘솔을 사용하는 데 필요한 권한](#security_iam_id-based-policy-examples-console-required-permissions)
+ [고객 관리형 정책 예](#security_iam_id-based-policy-examples-sdk-cli)

## 정책 모범 사례
<a name="security_iam_service-with-iam-policy-best-practices"></a>

자격 증명 기반 정책에 따라 계정에서 사용자가 CloudFront 리소스를 생성, 액세스 또는 삭제할 수 있는지 여부가 결정됩니다. 이 작업으로 인해 AWS 계정에 비용이 발생할 수 있습니다. ID 기반 정책을 생성하거나 편집할 때는 다음 지침과 권장 사항을 따르세요.
+ **AWS 관리형 정책으로 시작하고 최소 권한을 향해 나아가기** - 사용자 및 워크로드에 권한 부여를 시작하려면 많은 일반 사용 사례에 대한 권한을 부여하는 *AWS관리형 정책*을 사용합니다. AWS 계정에서 사용할 수 있습니다. 사용 사례에 고유한 AWS고객 관리형 정책을 정의하여 권한을 줄이는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) 또는 [AWS직무에 대한 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)을 참조하세요.
+ **최소 권한 적용** – IAM 정책을 사용하여 권한을 설정하는 경우, 작업을 수행하는 데 필요한 권한만 부여합니다. 이렇게 하려면 *최소 권한*으로 알려진 특정 조건에서 특정 리소스에 대해 수행할 수 있는 작업을 정의합니다. IAM을 사용하여 권한을 적용하는 방법에 대한 자세한 정보는 *IAM 사용 설명서*에 있는 [IAM의 정책 및 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)을 참조하세요.
+ **IAM 정책의 조건을 사용하여 액세스 추가 제한** – 정책에 조건을 추가하여 작업 및 리소스에 대한 액세스를 제한할 수 있습니다. 예를 들어, SSL을 사용하여 모든 요청을 전송해야 한다고 지정하는 정책 조건을 작성할 수 있습니다. CloudFormation와 같이, 특정 AWS 서비스를 통해 사용되는 경우에만 서비스 작업에 대한 액세스 권한을 부여할 수도 있습니다. 자세한 내용은 *IAM 사용자 설명서*의 [IAM JSON 정책 요소: 조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)을 참조하세요.
+ **IAM Access Analyzer를 통해 IAM 정책을 확인하여 안전하고 기능적인 권한 보장** - IAM Access Analyzer에서는 IAM 정책 언어(JSON)와 모범 사례가 정책에서 준수되도록 새로운 및 기존 정책을 확인합니다. IAM Access Analyzer는 100개 이상의 정책 확인 항목과 실행 가능한 추천을 제공하여 안전하고 기능적인 정책을 작성하도록 돕습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM Access Analyzer에서 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요.
+ **다중 인증(MFA) 필요** – AWS 계정에 IAM 사용자 또는 루트 사용자가 필요한 시나리오가 있는 경우, 추가 보안을 위해 MFA를 설정합니다. API 작업을 직접적으로 호출할 때 MFA가 필요하면 정책에 MFA 조건을 추가합니다. 자세한 내용은 *IAM 사용 설명서*의 [MFA를 통한 보안 API 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)를 참조하세요.

IAM의 모범 사례에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

## 사용자가 자신의 고유한 권한을 볼 수 있도록 허용
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

이 예제는 IAM 사용자가 자신의 사용자 ID에 연결된 인라인 및 관리형 정책을 볼 수 있도록 허용하는 정책을 생성하는 방법을 보여줍니다. 이 정책에는 콘솔에서 또는 AWS CLI나 AWS API를 사용하여 프로그래밍 방식으로 이 작업을 완료할 수 있는 권한이 포함됩니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 프로그래밍 방식으로 CloudFront에 액세스할 수 있는 권한
<a name="security_iam_id-based-policy-examples-programmatic-access-all"></a>

다음에서는 권한 정책을 보여 줍니다. `Sid`(명령문 ID)는 선택 사항입니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "AllowAllCloudFrontPermissions",
         "Effect": "Allow",
         "Action": ["cloudfront:*"],
         "Resource": "*"
      }
   ]
}
```

------

정책은 모든 CloudFront 작업을 수행할 수 있는 권한을 부여하며, 이러한 권한은 프로그래밍 방식으로 CloudFront에 액세스하는 데 충분합니다. 콘솔을 사용하여 CloudFront에 액세스하는 경우 [CloudFront 콘솔을 사용하는 데 필요한 권한](#security_iam_id-based-policy-examples-console-required-permissions) 단원을 참조하십시오.

작업과 각 작업을 사용할 권한을 부여하거나 거부하기 위해 지정하는 ARN의 목록은 **서비스 승인 참조의 [Amazon CloudFront에 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html)를 참조하세요.

## CloudFront 콘솔을 사용하는 데 필요한 권한
<a name="security_iam_id-based-policy-examples-console-required-permissions"></a>

CloudFront 콘솔에 대한 전체 액세스 권한을 부여하려면 다음 권한 정책에서 권한을 부여합니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "acm:ListCertificates", 
            "cloudfront:*", 
            "cloudwatch:DescribeAlarms",
            "cloudwatch:PutMetricAlarm",
            "cloudwatch:GetMetricStatistics",
            "elasticloadbalancing:DescribeLoadBalancers",
            "iam:ListServerCertificates",
            "sns:ListSubscriptionsByTopic",
            "sns:ListTopics",
            "waf:GetWebACL",
            "waf:ListWebACLs"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets",
            "s3:PutBucketPolicy"
         ],
         "Resource":"arn:aws:s3:::*"
      }
   ]
}
```

------

다음은 권한이 필요한 이유입니다.

**`acm:ListCertificates`**  
CloudFront 콘솔을 사용하여 배포를 생성하고 업데이트할 때 최종 사용자와 CloudFront 간에 또는 CloudFront와 원본 간에 HTTPS를 요구하도록 CloudFront를 구성하려는 경우, ACM 인증서 목록을 볼 수 있도록 허용합니다.  
CloudFront 콘솔을 사용하지 않는 경우에는 이 권한이 필요하지 않습니다.

**`cloudfront:*`**  
모든 CloudFront 작업을 수행할 수 있도록 허용합니다.

**`cloudwatch:DescribeAlarms` 및 `cloudwatch:PutMetricAlarm`**  
CloudFront 콘솔에서 CloudWatch 경보를 생성하고 볼 수 있습니다. `sns:ListSubscriptionsByTopic` 및 `sns:ListTopics`도 참조하십시오.  
CloudFront 콘솔을 사용하지 않는 경우에는 이러한 권한이 필요하지 않습니다.

**`cloudwatch:GetMetricStatistics`**  
CloudFront가 CloudFront 콘솔에서 CloudWatch 지표를 렌더링할 수 있도록 허용합니다.  
CloudFront 콘솔을 사용하지 않는 경우에는 이 권한이 필요하지 않습니다.

**`elasticloadbalancing:DescribeLoadBalancers`**  
배포를 생성하고 업데이트할 때, 사용 가능한 원본 목록에서 Elastic Load Balancing 로드 밸런서 목록을 볼 수 있도록 허용합니다.  
CloudFront 콘솔을 사용하지 않는 경우에는 이 권한이 필요하지 않습니다.

**`iam:ListServerCertificates`**  
CloudFront 콘솔을 사용하여 배포를 생성하고 업데이트할 때 최종 사용자와 CloudFront 간에 또는 CloudFront와 원본 간에 HTTPS를 요구하도록 CloudFront를 구성하려는 경우, IAM 인증서 저장소에서 인증서 목록을 볼 수 있도록 허용합니다.  
CloudFront 콘솔을 사용하지 않는 경우에는 이 권한이 필요하지 않습니다.

**`s3:ListAllMyBuckets`**  
배포를 생성하고 업데이트할 때, 다음 작업을 수행할 수 있도록 허용합니다.  
+ 사용 가능한 원본 목록에서 S3 버킷 목록 보기
+ 액세스 로그를 저장할 수 있는 S3 버킷 목록 보기
CloudFront 콘솔을 사용하지 않는 경우에는 이 권한이 필요하지 않습니다.

**`S3:PutBucketPolicy`**  
액세스를 S3 버킷으로 제한하는 배포를 생성하거나 업데이트할 때, 사용자가 버킷 정책을 업데이트하여 CloudFront 원본 액세스 ID에 대한 액세스 권한을 부여할 수 있도록 허용합니다. 자세한 내용은 [오리진 액세스 ID 사용(레거시, 권장하지 않음)](private-content-restricting-access-to-s3.md#private-content-restricting-access-to-s3-oai) 섹션을 참조하세요.  
CloudFront 콘솔을 사용하지 않는 경우에는 이 권한이 필요하지 않습니다.

**`sns:ListSubscriptionsByTopic` 및 `sns:ListTopics`**  
CloudFront 콘솔에서 CloudWatch 경보를 생성할 때 알림에 대한 SNS 주제를 선택할 수 있도록 허용합니다.  
CloudFront 콘솔을 사용하지 않는 경우에는 이러한 권한이 필요하지 않습니다.

**`waf:GetWebACL` 및 `waf:ListWebACLs`**  
CloudFront 콘솔에서 AWS WAF 웹 ACL 목록을 볼 수 있도록 허용합니다.  
CloudFront 콘솔을 사용하지 않는 경우에는 이러한 권한이 필요하지 않습니다.

### CloudFront 콘솔에 대한 권한 전용 작업
<a name="console-only-actions"></a>

[CloudFront 보안 절감형 번들](https://console.aws.amazon.com//cloudfront/v3/home#/savings-bundle/overview) 페이지에서 다음 CloudFront 작업을 수행할 수 있습니다. API 작업은 코드에서 호출할 수 없으며 AWS CLI 및 AWS SDK에 포함되지 않습니다.


****  

| 작업 | 설명 | 
| --- | --- | 
|  `CreateSavingsPlan`  |  새로운 절감형 플랜을 만들 수 있는 권한을 부여합니다.  | 
|   `GetSavingsPlan`   |  절감형 플랜을 가져올 수 있는 권한을 부여합니다.  | 
|  `ListRateCards`  |  계정에 대한 CloudFront 요금 카드를 나열할 수 있는 권한을 부여합니다.  | 
|   `ListSavingsPlans`   |  계정의 절감형 플랜을 나열할 수 있는 권한을 부여합니다.  | 
|   `ListUsages`   |  CloudFront 사용을 나열할 수 있는 권한을 부여합니다.  | 
|   `UpdateSavingsPlan`   |  절감형 플랜을 업데이트할 수 있는 권한을 부여합니다.  | 

**참고**  
CloudFront 절감형 플랜에 대한 자세한 내용은 [Amazon CloudFront FAQ](https://aws.amazon.com/cloudfront/faqs/)의 CloudFront 보안 절감형 번들 섹션을 참조하시기 바랍니다.
CloudFront에 대한 절감형 플랜을 만든 다음, 나중에 삭제하려면 [AWS Support](https://console.aws.amazon.com/support/home#/case/create?issueType=customer-service)에 문의하시기 바랍니다.

## 고객 관리형 정책 예
<a name="security_iam_id-based-policy-examples-sdk-cli"></a>

CloudFront API 작업에 대한 권한을 허용하는 고유의 사용자 지정 IAM 정책을 생성할 수 있습니다. 지정된 권한이 필요한 IAM 사용자 또는 그룹에 이러한 사용자 지정 정책을 연결할 수 있습니다. 이러한 정책은 CloudFront API, AWS SDK 또는 AWS CLI를 사용하는 경우에 유효합니다. 다음 예제에서는 몇 가지 일반 사용 사례에 대한 권한을 보여 줍니다. 사용자에게 CloudFront에 대한 전체 액세스 권한을 부여하는 정책에 대해서는 [CloudFront 콘솔을 사용하는 데 필요한 권한](#security_iam_id-based-policy-examples-console-required-permissions) 단원을 참조하십시오.

**Topics**
+ [예제 1: 모든 배포에 대한 읽기 액세스 허용](#security_iam_id-based-policy-examples-allow-read-all-distributions)
+ [예 2: 배포 생성, 업데이트, 삭제 허용](#security_iam_id-based-policy-examples-allow-create-update-delete-distributions)
+ [예제 3: 무효화 생성 및 나열 허용](#security_iam_id-based-policy-examples-allow-create-list-invalidations)
+ [예 4: 배포물 생성 허용](#create-distribution-iam-policy)

### 예제 1: 모든 배포에 대한 읽기 액세스 허용
<a name="security_iam_id-based-policy-examples-allow-read-all-distributions"></a>

다음 권한 정책은 사용자에게 CloudFront 콘솔에서 모든 배포를 볼 수 있는 사용자 권한을 부여합니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "acm:ListCertificates", 
            "cloudfront:GetDistribution",
            "cloudfront:GetDistributionConfig",
            "cloudfront:ListDistributions",
            "cloudfront:ListCloudFrontOriginAccessIdentities",
            "elasticloadbalancing:DescribeLoadBalancers",
            "iam:ListServerCertificates",
            "sns:ListSubscriptionsByTopic",
            "sns:ListTopics",
            "waf:GetWebACL",
            "waf:ListWebACLs"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets"
         ],
         "Resource":"arn:aws:s3:::*"
      }
   ]
}
```

------

### 예 2: 배포 생성, 업데이트, 삭제 허용
<a name="security_iam_id-based-policy-examples-allow-create-update-delete-distributions"></a>

다음 권한 정책은 사용자가 CloudFront 콘솔을 사용하여 배포를 생성, 업데이트 및 삭제할 수 있도록 허용합니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "acm:ListCertificates", 
            "cloudfront:CreateDistribution",
            "cloudfront:DeleteDistribution",
            "cloudfront:GetDistribution",
            "cloudfront:GetDistributionConfig",
            "cloudfront:ListDistributions",
            "cloudfront:UpdateDistribution",
            "cloudfront:ListCloudFrontOriginAccessIdentities",
            "elasticloadbalancing:DescribeLoadBalancers",
            "iam:ListServerCertificates",
            "sns:ListSubscriptionsByTopic",
            "sns:ListTopics",
            "waf:GetWebACL",
            "waf:ListWebACLs"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets",
            "s3:PutBucketPolicy"
         ],
         "Resource":"arn:aws:s3:::*"
      }
   ]
}
```

------

`cloudfront:ListCloudFrontOriginAccessIdentities` 권한이 있으면 사용자가 Amazon S3 버킷의 객체에 액세스할 권한을 기존 원본 액세스 ID에 자동으로 부여할 수 있습니다. 또한 사용자가 원본 액세스 ID를 생성할 수 있도록 하려면 `cloudfront:CreateCloudFrontOriginAccessIdentity` 권한도 허용해야 합니다.

### 예제 3: 무효화 생성 및 나열 허용
<a name="security_iam_id-based-policy-examples-allow-create-list-invalidations"></a>

다음 권한 정책은 사용자가 무효화를 생성하고 나열할 수 있도록 허용합니다. 먼저 배포에 대한 설정을 표시하여 무효화를 생성하고 보기 때문에 CloudFront 배포에 대한 읽기 액세스 권한도 여기에 포함됩니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "acm:ListCertificates", 
            "cloudfront:GetDistribution",
            "cloudfront:GetStreamingDistribution",
            "cloudfront:GetDistributionConfig",
            "cloudfront:ListDistributions",
            "cloudfront:ListCloudFrontOriginAccessIdentities",
            "cloudfront:CreateInvalidation",
            "cloudfront:GetInvalidation",
            "cloudfront:ListInvalidations",
            "elasticloadbalancing:DescribeLoadBalancers",
            "iam:ListServerCertificates",
            "sns:ListSubscriptionsByTopic",
            "sns:ListTopics",
            "waf:GetWebACL",
            "waf:ListWebACLs"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets"
         ],
         "Resource":"arn:aws:s3:::*"
      }
   ]
}
```

------

### 예 4: 배포물 생성 허용
<a name="create-distribution-iam-policy"></a>

다음 권한 정책은 사용자에게 CloudFront 콘솔에서 배포를 생성하고 나열할 수 있는 권한을 부여합니다. `CreateDistribution` 작업의 경우 배포 ARN(`arn:aws:cloudfront::123456789012:distribution/*`)에 와일드카드 대신 `Resource`에 와일드카드(\$1) 문자를 지정합니다. `Resource` 요소에 대한 자세한 내용은 IAM 사용 설명서의 [ IAM JSON 정책 요소: 리소스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html)를 참조합니다.**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "cloudfront:CreateDistribution",
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "cloudfront:ListDistributions",
            "Resource": "*"
        }
    ]
}
```

------







# AWSAmazon CloudFront용 관리형 정책
<a name="security-iam-awsmanpol"></a>

사용자, 그룹 또는 역할에 권한을 추가하려면 정책을 직접 작성하는 것보다 AWS 관리형 정책을 사용하는 것이 편리합니다. 사용자가 필요한 권한만 제공하는 [IAM 고객 관리형 정책을 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)하는 데 시간과 전문 지식이 필요합니다. 빠르게 시작하려면 AWS 관리형 정책을 사용하면 됩니다. 이 정책은 일반적인 사용 사례를 다루며 사용자의 AWS 계정에서 사용할 수 있습니다. AWS 관리형 정책에 대한 자세한 내용은 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)에서 *AWS 관리형 정책*을 참조하세요.

AWS 서비스 유지 관리 및 AWS 관리형 정책 업데이트입니다. AWS 관리형 정책에서 권한을 변경할 수 없습니다. 서비스에서 때때로 추가 권한을 AWS 관리형 정책에 추가하여 새로운 기능을 지원합니다. 이 유형의 업데이트는 정책이 연결된 모든 ID(사용자, 그룹 및 역할)에 적용됩니다. 새 기능이 출시되거나 새 권한이 사용 가능해지면 서비스는 AWS 관리형 정책을 업데이트합니다. 서비스는 AWS 관리형 정책에서 권한을 제거하지 않기 때문에 정책 업데이트로 인해 기존 권한이 손상되지 않습니다.

또한 AWS는 여러 서비스에 걸쳐 있는 직무에 관한 관리형 정책을 지원합니다. 예를 들어 **ReadOnlyAccess**라는 이름의 AWS 관리형 정책은 모든 AWS 서비스 및 리소스에 대한 읽기 전용 액세스 권한을 제공합니다. 서비스에서 새 기능을 시작하면 AWS가 새 작업 및 리소스에 대한 읽기 전용 권한을 추가합니다. 직무 정책의 목록과 설명은 *IAM 사용 설명서*의 [직무에 관한 AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)을 참조하세요.

**Topics**
+ [AWS 관리형 정책: CloudFrontReadOnlyAccess](#security-iam-awsmanpol-cloudfront-read-only)
+ [AWS 관리형 정책: CloudFrontFullAccess](#security-iam-awsmanpol-cloudfront-full-access)
+ [AWS 관리형 정책: AWSCloudFrontLogger](#security-iam-awsmanpol-cloudfront-logger)
+ [AWS 관리형 정책: AWSLambdaReplicator](#security-iam-awsmanpol-lambda-replicator)
+ [AWS 관리형 정책: AWSCloudFrontVPCOriginServiceRolePolicy](#security-iam-awsmanpol-vpc-origin)
+ [AWS 관리형 정책에 대해 CloudFront 업데이트](#security-iam-awsmanpol-updates)







## AWS 관리형 정책: CloudFrontReadOnlyAccess
<a name="security-iam-awsmanpol-cloudfront-read-only"></a>

**CloudFrontReadOnlyAccess** 정책을 IAM 자격 증명에 연결할 수 있습니다. 이 정책은 CloudFront 리소스에 읽기 전용 권한을 허용합니다. 또한 CloudFront와 관련되어 있고 CloudFront 콘솔에 표시되는 AWS 서비스 리소스에 읽기 전용 권한을 허용합니다.

**권한 세부 정보**

이 정책에는 다음 권한이 포함되어 있습니다.
+ `cloudfront:Describe*` - 보안 주체가 CloudFront 리소스에 대한 메타데이터 정보를 가져올 수 있습니다.
+ `cloudfront:Get*` - 보안 주체가 CloudFront 리소스에 대한 자세한 정보 및 구성을 가져올 수 있습니다.
+ `cloudfront:List*` - 보안 주체가 CloudFront 리소스 목록을 가져올 수 있습니다.
+ `cloudfront-keyvaluestore:Describe*` - 보안 주체가 키 값 저장소에 대한 정보를 얻을 수 있습니다.
+ `cloudfront-keyvaluestore:Get*` - 보안 주체가 키 값 저장소에 대한 자세한 정보 및 구성을 가져올 수 있습니다.
+ `cloudfront-keyvaluestore:List*` - 보안 주체가 키 값 저장소 목록을 얻을 수 있습니다.
+ `acm:DescribeCertificate` - 위탁자가 ACM 인증서에 대한 세부 정보를 가져올 있습니다.
+ `acm:ListCertificates` - 보안 주체가 ACM 인증서 목록을 가져오도록 허용합니다.
+ `iam:ListServerCertificates` - 보안 주체가 IAM에 저장된 서버 인증서 목록을 가져올 수 있습니다.
+ `route53:List*` - 보안 주체가 Route 53 리소스 목록을 가져올 수 있습니다.
+ `waf:ListWebACLs` - 보안 주체가 에서 웹 ACL 목록을 가져올 수 있도록 허용합니다.AWS WAF
+ `waf:GetWebACL` - 보안 주체가 에서 웹 ACL에 대한 세부 정보를 가져올 수 있도록 허용합니다.AWS WAF
+ `wafv2:ListWebACLs` - 보안 주체가 에서 웹 ACL 목록을 가져올 수 있도록 허용합니다.AWS WAF
+ `wafv2:GetWebACL` - 보안 주체가 에서 웹 ACL에 대한 세부 정보를 가져올 수 있도록 허용합니다.AWS WAF
+ `pricingplanmanager:GetSubscription` - 보안 주체가 요금제 구독에 대한 세부 정보를 가져올 수 있는 읽기 전용 액세스를 허용합니다.
+ `pricingplanmanager:ListSubscriptions` - 보안 주체가 요금제 구독을 나열할 수 있는 읽기 전용 액세스를 허용합니다.
+ `ec2:DescribeIpamPools` - 보안 주체가 IPAM 풀에 대한 세부 정보를 가져올 수 있도록 허용합니다.
+ `ec2:GetIpamPoolCidrs` - 보안 주체가 IPAM 풀에 프로비저닝된 CIDR을 가져올 수 있도록 허용합니다.

이 정책의 권한을 보려면 *AWS 관리형 정책 참조*의 [CloudFrontReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudFrontReadOnlyAccess.html)를 확인하시기 바랍니다.

## AWS 관리형 정책: CloudFrontFullAccess
<a name="security-iam-awsmanpol-cloudfront-full-access"></a>

**CloudFrontFullAccess** 정책을 IAM 자격 증명에 연결할 수 있습니다. 이 정책은 CloudFront 리소스에 대한 관리 권한을 허용합니다. 또한 CloudFront와 관련되어 있고 CloudFront 콘솔에 표시되는 AWS 서비스 리소스에 읽기 전용 권한을 허용합니다.

**권한 세부 정보**

이 정책에는 다음 권한이 포함되어 있습니다.
+ `s3:ListAllMyBuckets` - 보안 주체가 모든 Amazon S3 버킷 목록을 가져오도록 허용합니다.
+ `acm:DescribeCertificate` - 위탁자가 ACM 인증서에 대한 세부 정보를 가져올 있습니다.
+ `acm:ListCertificates` - 보안 주체가 ACM 인증서 목록을 가져오도록 허용합니다.
+ `acm:RequestCertificate` - 위탁자가 ACM에서 관리형 인증서를 요청할 수 있도록 허용합니다.
+ `cloudfront:*` - 보안 주체가 모든 CloudFront 리소스에서 모든 작업을 수행하도록 허용합니다.
+ `cloudfront-keyvaluestore:*` - 보안 주체가 키 값 저장소에 대한 모든 작업을 수행할 수 있습니다.
+ `iam:ListServerCertificates` - 보안 주체가 IAM에 저장된 서버 인증서 목록을 가져올 수 있습니다.
+ `waf:ListWebACLs` - 보안 주체가 에서 웹 ACL 목록을 가져올 수 있도록 허용합니다.AWS WAF
+ `waf:GetWebACL` - 보안 주체가 에서 웹 ACL에 대한 세부 정보를 가져올 수 있도록 허용합니다.AWS WAF
+ `waf:CreateWebACLs` - 보안 주체가 AWS WAF에서 웹 ACL을 생성할 수 있도록 허용합니다.
+ `wafv2:ListWebACLs` - 보안 주체가 에서 웹 ACL 목록을 가져올 수 있도록 허용합니다.AWS WAF
+ `wafv2:GetWebACL` - 보안 주체가 에서 웹 ACL에 대한 세부 정보를 가져올 수 있도록 허용합니다.AWS WAF
+ `kinesis:ListStreams` - 보안 주체가 Amazon Kinesis Streams 목록을 가져올 수 있도록 허용합니다.
+ `elasticloadbalancing:DescribeLoadBalancers` - 위탁자가 Elastic Load Balancing의 로드 밸런서에 대한 자세한 정보를 얻을 수 있습니다.
+ `kinesis:DescribeStream` - 보안 주체가 Kinesis 스트림에 대한 세부 정보를 가져올 수 있도록 허용합니다.
+ `iam:ListRoles` - 보안 주체가 IAM에서 역할 목록을 가져오도록 허용합니다.
+ `pricingplanmanager:AssociateResourcesToSubscription` - 보안 주체가 리소스를 구독에 연결할 수 있도록 허용합니다. 이렇게 하면 리소스에 구독의 요금제를 적용할 수 있습니다.
+ `pricingplanmanager:CancelSubscription` - 보안 주체가 기존 구독을 취소할 수 있도록 허용합니다.
+ `pricingplanmanager:CancelSubscriptionChange` - 변경 사항이 적용되기 전에 보안 주체가 기존 구독에 대해 보류 중인 변경(예: 플랜 업그레이드)을 취소할 수 있습니다.
+ `pricingplanmanager:CreateSubscription` - 보안 주체가 요금제 구독을 생성할 수 있도록 허용합니다.
+ `pricingplanmanager:DisassociateResourcesFromSubscription` - 보안 주체가 리소스와 기존 구독 간의 연결을 제거할 수 있도록 허용합니다.
+ `pricingplanmanager:UpdateSubscription` - 보안 주체가 요금제 변경과 같은 기존 구독을 수정할 수 있도록 허용합니다.
+ `pricingplanmanager:GetSubscription` - 보안 주체가 요금제 구독에 대한 세부 정보를 가져올 수 있는 읽기 전용 액세스를 허용합니다.
+ `pricingplanmanager:ListSubscriptions` - 보안 주체가 요금제 구독을 나열할 수 있는 읽기 전용 액세스를 허용합니다.
+ `ec2:DescribeInstances` - 위탁자가 Amazon EC2의 인스턴스에 대한 자세한 정보를 얻을 수 있습니다.
+ `ec2:DescribeInternetGateways` - 위탁자가 Amazon EC2의 인터넷 게이트웨이에 대한 자세한 정보를 얻을 수 있습니다.
+ `ec2:DescribeIpamPools` - 보안 주체가 IPAM 풀에 대한 세부 정보를 가져올 수 있도록 허용합니다.
+ `ec2:GetIpamPoolCidrs` - 보안 주체가 IPAM 풀에 프로비저닝된 CIDR을 가져올 수 있도록 허용합니다.

이 정책의 권한을 보려면 *AWS 관리형 정책 참조*의 [CloudFrontFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudFrontFullAccess.html)를 확인하시기 바랍니다.

**중요**  
CloudFront에서 액세스 로그를 생성하여 저장하도록 하려면 추가 권한을 부여해야 합니다. 자세한 내용은 [권한](standard-logging-legacy-s3.md#AccessLogsBucketAndFileOwnership) 섹션을 참조하세요.

## AWS 관리형 정책: AWSCloudFrontLogger
<a name="security-iam-awsmanpol-cloudfront-logger"></a>

**AWSCloudFrontLogger** 정책을 IAM 자격 증명에 연결할 수 없습니다. 이 정책은 CloudFront에서 사용자를 대신하여 작업을 수행할 수 있도록 서비스 연결 역할에 연결됩니다. 자세한 내용은 [Lambda@Edge의 서비스 연결 역할](lambda-edge-permissions.md#using-service-linked-roles-lambda-edge) 섹션을 참조하세요.

이 정책은 CloudFront에서 로그 파일을 Amazon CloudFront로 푸시할 수 있도록 허용합니다. 이 정책에 포함된 권한에 대한 자세한 내용은 [CloudFront Logger에 대한 서비스 연결 역할 권한](lambda-edge-permissions.md#slr-permissions-cloudfront-logger) 섹션을 참조하세요.

이 정책의 권한을 보려면 *AWS 관리형 정책 참조*에서 [AWSCloudFrontLogger](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCloudFrontLogger.html)를 참조하시기 바랍니다.

## AWS 관리형 정책: AWSLambdaReplicator
<a name="security-iam-awsmanpol-lambda-replicator"></a>

**AWSLambdaReplicator** 정책을 IAM 자격 증명에 연결할 수 없습니다. 이 정책은 CloudFront에서 사용자를 대신하여 작업을 수행할 수 있도록 서비스 연결 역할에 연결됩니다. 자세한 내용은 [Lambda@Edge의 서비스 연결 역할](lambda-edge-permissions.md#using-service-linked-roles-lambda-edge) 섹션을 참조하세요.

이 정책을 통해 CloudFront는 AWS Lambda에서 함수를 생성, 삭제 및 비활성화하여 Lambda @Edge 함수를 AWS 리전에 복제할 수 있습니다. 이 정책에 포함된 권한에 대한 자세한 내용은 [Lambda Replicator의 서비스 연결 역할 권한](lambda-edge-permissions.md#slr-permissions-lambda-replicator) 섹션을 참조하세요.

이 정책의 권한을 보려면 *AWS 관리형 정책 참조*에서 [AWSLambdaReplicator](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaReplicator.html)를 참조하시기 바랍니다.

## AWS 관리형 정책: AWSCloudFrontVPCOriginServiceRolePolicy
<a name="security-iam-awsmanpol-vpc-origin"></a>

**AWSCloudFrontVPCOriginServiceRolePolicy**를 IAM 엔터티에 연결할 수 없습니다. 이 정책은 CloudFront에서 사용자를 대신하여 작업을 수행할 수 있도록 서비스 연결 역할에 연결됩니다. 자세한 내용은 [CloudFront의 서비스 연결 역할 사용](using-service-linked-roles.md) 섹션을 참조하세요.

CloudFront가 사용자를 대신하여 EC2 탄력적 네트워크 인터페이스 및 보안 그룹을 관리할 수 있도록 허용합니다. 이 정책에 포함된 권한에 대한 자세한 내용은 [CloudFront VPC 오리진에 대한 서비스 연결 역할 권한](using-service-linked-roles.md#slr-permissions) 섹션을 참조하세요.

이 정책의 권한을 보려면 *AWS 관리형 정책 참조*의 [AWSCloudFrontVPCOriginServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCloudFrontVPCOriginServiceRolePolicy.html)를 참조하시기 바랍니다.

## AWS 관리형 정책에 대해 CloudFront 업데이트
<a name="security-iam-awsmanpol-updates"></a>

이 서비스가 이러한 변경 내용을 추적하기 시작한 이후부터 CloudFront의 AWS 관리형 정책 업데이트에 대한 세부 정보를 봅니다. 이 페이지의 변경 사항에 대한 자동 알림을 받아보려면 CloudFront [문서 기록](WhatsNew.md) 페이지에서 RSS 피드를 구독하세요.




| 변경 | 설명 | 날짜 | 
| --- | --- | --- | 
|  [CloudFrontReadOnlyAccess](#security-iam-awsmanpol-cloudfront-read-only) - 기존 정책에 대한 업데이트  |  CloudFront에 Amazon EC2에 대한 새 권한을 추가했습니다. 새 권한을 통해 보안 주체는 `ec2:DescribeIpamPools` 및 `ec2:GetIpamPoolCidrs` 작업을 사용할 수 있습니다.  | 2025년 11월 24일 | 
|  [CloudFrontFullAccess](#security-iam-awsmanpol-cloudfront-full-access) - 기존 정책에 대한 업데이트  |  CloudFront에 Amazon EC2에 대한 새 권한을 추가했습니다. 새 권한을 통해 보안 주체는 `ec2:DescribeIpamPools` 및 `ec2:GetIpamPoolCidrs` 작업을 사용할 수 있습니다.  | 2025년 11월 24일 | 
|  [CloudFrontFullAccess](#security-iam-awsmanpol-cloudfront-full-access) - 기존 정책에 대한 업데이트  |  CloudFront에 AWS WAF ACL 리소스를 생성할 수 있는 새 권한을 추가하고 AWS Pricing Plan Manager에 생성, 업데이트, 삭제 및 읽기 권한을 추가했습니다.  | 2025년 11월 18일 | 
|  [CloudFrontFullAccess](#security-iam-awsmanpol-cloudfront-full-access) - 기존 정책에 대한 업데이트  |  CloudFront에 AWS WAF ACL 리소스를 생성할 수 있는 새 권한을 추가하고 AWS Pricing Plan Manager에 생성, 업데이트, 삭제 및 읽기 권한을 추가했습니다.  | 2025년 11월 18일 | 
|  [CloudFrontReadOnlyAccess](#security-iam-awsmanpol-cloudfront-read-only) - 기존 정책에 대한 업데이트  |  CloudFront에 AWS Pricing Plan Manager에 대한 읽기 전용 액세스 권한을 새로 추가했습니다.  | 2025년 11월 18일 | 
|  [CloudFrontReadOnlyAccess](#security-iam-awsmanpol-cloudfront-read-only) - 기존 정책에 대한 업데이트  |  CloudFront에 AWS Pricing Plan Manager에 대한 읽기 전용 액세스 권한을 새로 추가했습니다.  | 2025년 11월 18일 | 
|  [CloudFrontReadOnlyAccess](#security-iam-awsmanpol-cloudfront-read-only) - 기존 정책에 대한 업데이트  |  CloudFront에 ACM에 대한 새 권한을 추가했습니다. 새 권한을 통해 위탁자는 ACM 인증서에 대한 세부 정보를 가져올 수 있습니다.  | 2025년 4월 28일 | 
|  [CloudFrontFullAccess](#security-iam-awsmanpol-cloudfront-full-access) - 기존 정책에 대한 업데이트  |  CloudFront에 ACM에 대한 새 권한을 추가했습니다. 새 권한을 통해 위탁자는 ACM 인증서에 대한 세부 정보를 가져오고 ACM에서 관리형 인증서를 요청할 수 있습니다.  | 2025년 4월 28일 | 
|  [CloudFrontFullAccess](#security-iam-awsmanpol-cloudfront-full-access) - 기존 정책에 대한 업데이트  |  CloudFront에서 Amazon EC2 및 Elastic Load Balancing에 대한 새 권한을 추가했습니다. 새로운 권한을 통해 CloudFront는 Elastic Load Balancing의 로드 밸런서와 Amazon EC2의 인스턴스 및 인터넷 게이트웨이에 대한 자세한 정보를 얻을 수 있습니다.  | 2024년 11월 20일 | 
|  [AWSCloudFrontVPCOriginServiceRolePolicy](#security-iam-awsmanpol-vpc-origin) – 새 정책  |  CloudFront에서 새 정책을 추가했습니다. CloudFront가 사용자를 대신하여 EC2 탄력적 네트워크 인터페이스 및 보안 그룹을 관리할 수 있도록 허용합니다.  | 2024년 11월 20일 | 
|  [CloudFrontReadOnlyAccess](#security-iam-awsmanpol-cloudfront-read-only) 및 [CloudFrontFullAccess](#security-iam-awsmanpol-cloudfront-full-access) - 두 가지 기존 정책에 대한 업데이트입니다.  |  CloudFront에서 키 값 저장소에 대한 새로운 권한을 추가했습니다. 새 권한을 통해 사용자는 키 값 저장소에 대한 정보를 얻고 키 값 저장소에 대한 조치를 취할 수 있습니다.  | 2023년 12월 19일 | 
|  [CloudFrontReadOnlyAccess](#security-iam-awsmanpol-cloudfront-read-only) - 기존 정책에 대한 업데이트  |  CloudFront는 CloudFront 함수를 설명하는 새로운 권한을 추가했습니다. 이 권한을 사용하면 사용자, 그룹 또는 역할이 함수에 대한 정보 및 메타데이터를 읽을 수 있지만 함수 코드는 읽을 수 없습니다.  | 2021년 9월 8일 | 
|  CloudFront, 변경 내용 추적 시작  |  CloudFront가 AWS 관리형 정책에 대한 변경 내용 추적을 시작했습니다.  | 2021년 9월 8일 | 

# CloudFront의 서비스 연결 역할 사용
<a name="using-service-linked-roles"></a>

Amazon CloudFront는 AWS Identity and Access Management(IAM) [서비스 연결 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)을 사용합니다. 서비스 연결 역할은 CloudFront에 직접 연결된 고유한 유형의 IAM 역할입니다. 서비스 연결 역할은 CloudFront에서 미리 정의하며 서비스가 사용자를 대신하여 다른 AWS 서비스를 호출하는 데 필요한 모든 권한을 포함합니다.

서비스 연결 역할을 사용하면 필요한 권한을 수동으로 추가할 필요가 없으므로 CloudFront를 더 쉽게 설정할 수 있습니다. CloudFront에서 서비스 연결 역할의 권한을 정의하므로 다르게 정의되지 않은 한, CloudFront만 해당 역할을 수임할 수 있습니다. 정의된 권한에는 신뢰 정책과 권한 정책이 포함되며 이 권한 정책은 다른 IAM 엔터티에 연결할 수 없습니다.

먼저 관련 리소스를 삭제한 후에만 서비스 연결 역할을 삭제할 수 있습니다. 이렇게 하면 리소스에 대한 액세스 권한을 부주의로 삭제할 수 없기 때문에 CloudFront 리소스가 보호됩니다.

서비스 연결 역할을 지원하는 기타 서비스에 대한 자세한 내용은 [IAM으로 작업하는 AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)를 참조하고 **서비스 연결 역할(Service-linked roles)** 열에 **예(Yes)**가 있는 서비스를 찾으세요. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 **예** 링크를 선택합니다.

## CloudFront VPC 오리진에 대한 서비스 연결 역할 권한
<a name="slr-permissions"></a>

CloudFront VPC 오리진은 **AWSServiceRoleForCloudFrontVPCOrigin**이라는 서비스 연결 역할을 사용합니다. CloudFront가 사용자를 대신하여 EC2 탄력적 네트워크 인터페이스 및 보안 그룹을 관리할 수 있습니다.

AWSServiceRoleForCloudFrontVPCOrigin 서비스 연결 역할은 역할을 수임하기 위해 다음 서비스를 신뢰합니다.
+ `vpcorigin.cloudfront.amazonaws.com`

이름이 AWSCloudFrontVPCOriginServiceRolePolicy인 연결 권한 정책은 CloudFront VPC 오리진이 지정된 리소스에 대해 다음 작업을 완료하도록 허용합니다.
+ 작업: `arn:aws:ec2:*:*:network-interface/*`에 대한 `ec2:CreateNetworkInterface`
+ 작업: `arn:aws:ec2:*:*:subnet/*` 및 `arn:aws:ec2:*:*:security-group/*`의 `ec2:CreateNetworkInterface`
+ 작업: `arn:aws:ec2:*:*:security-group/*`에 대한 `ec2:CreateSecurityGroup`
+ 작업: `arn:aws:ec2:*:*:vpc/*`에 대한 `ec2:CreateSecurityGroup`
+ 작업: `supported AWS resources that have the aws:ResourceTag/aws.cloudfront.vpcorigin tag enabled`의 `ec2:ModifyNetworkInterfaceAttribute`, `ec2:DeleteNetworkInterface`, `ec2:DeleteSecurityGroup`, `ec2:AssignIpv6Addresses`, `ec2:UnassignIpv6Addresses` 
+ 작업: `all AWS resources that the actions support`의 `ec2:DescribeNetworkInterfaces`, `ec2:DescribeSecurityGroups`, `ec2:DescribeInstances`, `ec2:DescribeInternetGateways`, `ec2:DescribeSubnets`, `ec2:DescribeRegions`, `ec2:DescribeAddresses` 
+ 작업: `arn:aws:ec2:*:*:security-group/*` 및 `arn:aws:ec2:*:*:network-interface/*`의 `ec2:CreateTags`
+ 작업: `all AWS resources that the actions support`의 `elasticloadbalancing:DescribeLoadBalancers`, `elasticloadbalancing:DescribeListeners`, `elasticloadbalancing:DescribeTargetGroups` 

사용자, 그룹 또는 역할이 서비스 연결 역할을 생성, 편집 또는 삭제할 수 있도록 사용 권한을 구성해야 합니다. 자세한 내용은 *IAM 사용 설명서*의 [서비스 연결 역할 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)을 참조하세요.

## CloudFront VPC 오리진에 대한 서비스 연결 역할 생성
<a name="create-slr"></a>

서비스 연결 역할은 수동으로 생성할 필요가 없습니다. AWS Management Console, AWS CLI 또는 AWS API에서 VPC 오리진을 만들 때 CloudFront VPC 오리진은 서비스 연결 역할을 만듭니다.

이 서비스 연결 역할을 삭제했다가 다시 생성해야 하는 경우 동일한 프로세스를 사용하여 계정에서 역할을 다시 생성할 수 있습니다. VPC 오리진을 만들 때 CloudFront VPC 오리진은 서비스 연결 역할을 다시 만듭니다.

## CloudFront VPC 오리진에 대한 서비스 연결 역할 편집
<a name="edit-slr"></a>

CloudFront VPC 오리진에서는 AWSServiceRoleForCloudFrontVPCOrigin 서비스 연결 역할을 편집하도록 허용하지 않습니다. 서비스 연결 역할을 생성한 후에는 다양한 개체가 역할을 참조할 수 있기 때문에 역할 이름을 변경할 수 없습니다. 하지만 IAM을 사용하여 역할의 설명을 편집할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [서비스 연결 역할 편집](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)을 참조하세요.

## CloudFront VPC 오리진에 대한 서비스 연결 역할 삭제
<a name="delete-slr"></a>

서비스 연결 역할이 필요한 기능 또는 서비스가 더 이상 필요 없는 경우에는 해당 역할을 삭제하는 것이 좋습니다. 따라서 적극적으로 모니터링하거나 유지하지 않는 미사용 엔터티가 없도록 합니다. 단, 서비스 연결 역할에 대한 리소스를 먼저 정리해야 수동으로 삭제할 수 있습니다.

**참고**  
리소스를 삭제하려 할 때 CloudFront 서비스가 역할을 사용 중이면 삭제에 실패할 수 있습니다. 이 문제가 발생하면 몇 분 기다렸다가 작업을 다시 시도하세요.

**AWSServiceRoleForCloudFrontVPCOrigin에서 사용하는 CloudFront VPC 오리진 리소스를 삭제하려면 다음과 같이 합니다.**
+ 계정에서 VPC 오리진 리소스를 삭제합니다.
  + CloudFront가 계정에서 리소스 삭제를 완료하는 데 다소 시간이 걸릴 수 있습니다. 서비스 연결 역할을 즉시 삭제할 수 없는 경우 기다렸다가 다시 시도합니다.

**IAM을 사용하여 수동으로 서비스 연결 역할을 삭제하려면**

IAM 콘솔, AWS CLI 또는 AWS API를 사용하여 AWSServiceRoleForCloudFrontVPCOrigin 서비스 연결 역할을 삭제합니다. 자세한 내용은 IAM 사용 설명서의 [서비스 연결 역할 삭제](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)**를 참조하십시오.

## CloudFront VPC 오리진 서비스 연결 역할을 지원하는 리전
<a name="slr-regions"></a>

CloudFront VPC 오리진에서는 서비스가 제공되는 모든 리전에서 서비스 연결 역할을 사용하도록 지원하지 않습니다. 다음 리전에서 AWSServiceRoleForCloudFrontVPCOrigin 역할을 사용할 수 있습니다.


| 리전 이름 | 리전 자격 증명 | CloudFront에서 지원 | 
| --- | --- | --- | 
| 미국 동부(버지니아 북부) | us-east-1 | 예 | 
| 미국 동부(오하이오) | us-east-2 | 예 | 
| 미국 서부(캘리포니아 북부) | us-west-1(AZ usw1-az2 제외) | 예 | 
| 미국 서부(오리건) | us-west-2 | 예 | 
| 아프리카(케이프타운) | af-south-1 | 예 | 
| 아시아 태평양(홍콩) | ap-east-1 | 예 | 
| 아시아 태평양(자카르타) | ap-southeast-3 | 예 | 
| 아시아 태평양(멜버른) | ap-southeast-4 | 예 | 
| 아시아 태평양(뭄바이) | ap-south-1 | 예 | 
| 아시아 태평양(하이데라바드) | ap-south-2 | 예 | 
| 아시아 태평양(오사카) | ap-northeast-3 | 예 | 
| 아시아 태평양(서울) | ap-northeast-2 | 예 | 
| 아시아 태평양(싱가포르) | ap-southeast-1 | 예 | 
| 아시아 태평양(시드니) | ap-southeast-2 | 예 | 
| 아시아 태평양(도쿄) | ap-northeast-1(AZ apne1-az3 제외) | 예 | 
| 캐나다(중부) | ca-central-1(AZ cac1-az3 제외) | 예 | 
| 캐나다 서부(캘거리) | ca-west-1 | 예 | 
| 유럽(프랑크푸르트) | eu-central-1 | 예 | 
| 유럽(아일랜드) | eu-west-1 | 예 | 
| 유럽(런던) | eu-west-2 | 예 | 
| 유럽(밀라노) | eu-south-1 | 예 | 
| 유럽(파리) | eu-west-3 | 예 | 
| 유럽(스페인) | eu-south-2 | 예 | 
| 유럽(스톡홀름) | eu-north-1 | 예 | 
| 유럽(취리히) | eu-central-2 | 예 | 
| 이스라엘(텔아비브) | il-central-1 | 예 | 
| 중동(바레인) | me-south-1 | 예 | 
| 중동(UAE) | me-central-1 | 예 | 
| 남아메리카(상파울루) | sa-east-1 | 예 | 

# Amazon CloudFront 자격 증명 및 액세스 문제 해결
<a name="security_iam_troubleshoot"></a>

다음 정보를 사용하여 CloudFront 및 IAM 작업 시 발생할 수 있는 일반적인 문제를 진단하고 수정할 수 있습니다.

**Topics**
+ [CloudFront에서 작업을 수행할 권한이 없습니다.](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole을 수행하도록 인증되지 않음](#security_iam_troubleshoot-passrole)
+ [내 AWS 계정 외부의 사람이 내 CloudFront 리소스에 액세스할 수 있게 허용하기를 원합니다.](#security_iam_troubleshoot-cross-account-access)

## CloudFront에서 작업을 수행할 권한이 없습니다.
<a name="security_iam_troubleshoot-no-permissions"></a>

작업을 수행할 권한이 없다는 오류가 표시되면 작업을 수행할 수 있도록 정책을 업데이트해야 합니다.

다음의 예제 오류는 `mateojackson` IAM 사용자가 콘솔을 사용하여 가상 `my-example-widget` 리소스에 대한 세부 정보를 보려고 하지만 가상 `cloudfront:GetWidget` 권한이 없을 때 발생합니다.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: cloudfront:GetWidget on resource: my-example-widget
```

이 경우, `cloudfront:GetWidget` 작업을 사용하여 `my-example-widget` 리소스에 액세스할 수 있도록 `mateojackson` 사용자 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하세요. 관리자는 로그인 자격 증명을 제공한 사람입니다.

## iam:PassRole을 수행하도록 인증되지 않음
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` 작업을 수행할 수 있는 권한이 없다는 오류가 수신되면 CloudFront에 역할을 전달할 수 있도록 정책을 업데이트해야 합니다.

일부 AWS 서비스에서는 새로운 서비스 역할 또는 서비스 연결 역할을 생성하는 대신 해당 서비스에 기존 역할을 전달할 수 있습니다. 이렇게 하려면 사용자가 서비스에 역할을 전달할 수 있는 권한을 가지고 있어야 합니다.

다음 예시 오류는 `marymajor`라는 IAM 사용자가 콘솔을 사용하여 CloudFront에서 작업을 수행하려고 하는 경우에 발생합니다. 하지만 작업을 수행하려면 서비스 역할이 부여한 권한이 서비스에 있어야 합니다. Mary는 서비스에 역할을 전달할 수 있는 권한을 가지고 있지 않습니다.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

이 경우, Mary가 `iam:PassRole`작업을 수행할 수 있도록 Mary의 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하세요. 관리자는 로그인 자격 증명을 제공한 사람입니다.

## 내 AWS 계정 외부의 사람이 내 CloudFront 리소스에 액세스할 수 있게 허용하기를 원합니다.
<a name="security_iam_troubleshoot-cross-account-access"></a>

다른 계정의 사용자 또는 조직 외부의 사람이 리소스에 액세스할 때 사용할 수 있는 역할을 생성할 수 있습니다. 역할을 수임할 신뢰할 수 있는 사람을 지정할 수 있습니다. 리소스 기반 정책 또는 액세스 제어 목록(ACL)을 지원하는 서비스의 경우, 이러한 정책을 사용하여 다른 사람에게 리소스에 대한 액세스 권한을 부여할 수 있습니다.

자세한 내용은 다음을 참조하세요.
+ CloudFront에서 이러한 기능을 지원하는지 여부를 알아보려면 [Amazon CloudFront와 함께 IAM을 사용하는 방법](security_iam_service-with-iam.md) 섹션을 참조하세요.
+ 소유하고 있는 AWS 계정의 리소스에 대한 액세스 권한을 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [자신이 소유한 다른 AWS 계정의 IAM 사용자에 대한 액세스 권한 제공](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)을 참조하세요.
+ 리소스에 대한 액세스 권한을 서드 파티 AWS 계정에게 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [서드 파티가 소유한 AWS 계정에 대한 액세스 제공](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)을 참조하세요.
+ ID 페더레이션을 통해 액세스 권한을 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [외부에서 인증된 사용자에게 액세스 권한 제공(ID 페더레이션)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)을 참조하세요.
+ 크로스 계정 액세스에 대한 역할과 리소스 기반 정책 사용의 차이점을 알아보려면 *IAM 사용 설명서*의 [IAM의 크로스 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.