

# Amazon CloudFront의 보안
<a name="security"></a>

AWS은 클라우드 보안을 가장 중요하게 생각합니다. AWS 고객으로서 여러분은 가장 높은 보안 요구 사항을 충족하기 위해 설계된 데이터 센터 및 네트워크 아키텍처의 혜택을 받게 됩니다.

보안은 AWS과 사용자의 공동 책임입니다. [공동 책임 모델](https://aws.amazon.com/compliance/shared-responsibility-model/)은 이 사항을 클라우드 *내* 보안 및 클라우드*의* 보안으로 설명합니다.
+ **클라우드의 보안** - AWS는 AWS Cloud에서 AWS 서비스를 실행하는 인프라를 보호합니다. AWS는 또한 안전하게 사용할 수 있는 서비스를 제공합니다. 서드 파티 감사원은 정기적으로 [AWS규정 준수 프로그램](https://aws.amazon.com/compliance/programs/)의 일환으로 보안 효과를 테스트하고 검증합니다. Amazon CloudFront에 적용되는 규정 준수 프로그램에 대한 자세한 내용은 [규정 준수 프로그램 제공 범위 내 AWS 서비스](https://aws.amazon.com/compliance/services-in-scope/)를 참조하세요.
+ **클라우드 내 보안** – 사용자의 책임은 사용자가 사용하는 AWS 서비스에 의해 결정됩니다. 또한 데이터의 민감도, 조직의 요건 및 관련 법률 및 규정을 비롯한 기타 요소에 대해서도 책임이 있습니다.

이 설명서는 CloudFront를 사용할 때 공동 책임 모델을 적용하는 방법을 이해하는 데 도움이 됩니다. 다음 주제에서는 보안 및 규정 준수 목적에 맞게 CloudFront를 구성하는 방법을 보여줍니다. 또한 CloudFront 리소스를 모니터링하고 보호하는 데 도움이 되는 다른 AWS 서비스를 사용하는 방법도 알아봅니다.

**Topics**
+ [Amazon CloudFront의 데이터 보호](data-protection-summary.md)
+ [Amazon CloudFront용 Identity and Access Management](security-iam.md)
+ [Amazon CloudFront의 로깅 및 모니터링](logging-and-monitoring.md)
+ [Amazon CloudFront에 대한 규정 준수 확인](compliance.md)
+ [Amazon CloudFront의 복원성](disaster-recovery-resiliency.md)
+ [Amazon CloudFront의 인프라 보안](infrastructure-security.md)

# Amazon CloudFront의 데이터 보호
<a name="data-protection-summary"></a>

AWS [ 공동 책임 모델](https://aws.amazon.com/compliance/shared-responsibility-model/)은 Amazon CloudFront의 데이터 보호에 적용됩니다. 이 모델에서 설명하는 것처럼 AWS는 모든 AWS 클라우드를 실행하는 글로벌 인프라를 보호할 책임이 있습니다. 사용자는 이 인프라에 호스팅되는 콘텐츠에 대한 통제 권한을 유지할 책임이 있습니다. 사용하는 AWS 서비스의 보안 구성과 관리 태스크에 대한 책임도 사용자에게 있습니다. 데이터 프라이버시에 관한 자세한 내용은 [데이터 프라이버시 FAQ](https://aws.amazon.com/compliance/data-privacy-faq/)를 참조하세요. 유럽의 데이터 보호에 대한 자세한 내용은 *AWS보안 블로그*의 [AWS공동 책임 모델 및 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 블로그 게시물을 참조하세요.

데이터를 보호하려면 AWS 계정자격 증명을 보호하고 AWS IAM Identity Center또는 AWS Identity and Access Management(IAM)를 통해 개별 사용자 계정을 설정하는 것이 좋습니다. 이렇게 하면 개별 사용자에게 자신의 직무를 충실히 이행하는 데 필요한 권한만 부여됩니다. 또한 다음과 같은 방법으로 데이터를 보호하는 것이 좋습니다.
+ 각 계정에 다중 인증(MFA)을 사용합니다.
+ SSL/TLS를 사용하여 AWS리소스와 통신하세요. TLS 1.2는 필수이며 TLS 1.3을 권장합니다.
+ AWS CloudTrail으로 API 및 사용자 활동 로깅을 설정하세요. AWS 활동 캡처에 CloudTrail 추적을 사용하는 방법에 대한 자세한 내용은 *AWS CloudTrail사용 설명서*의 [CloudTrail 추적 작업](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)을 참조하세요.
+ AWS 암호화 솔루션을 AWS 서비스내의 모든 기본 보안 컨트롤과 함께 사용하세요.
+ Amazon S3에 저장된 민감한 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용합니다.
+ 명령줄 인터페이스 또는 API를 통해 AWS에 액세스할 때 FIPS 140-3 검증된 암호화 모듈이 필요한 경우, FIPS 엔드포인트를 사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 내용은 [연방 정보 처리 표준(FIPS) 140-3](https://aws.amazon.com/compliance/fips/)을 참조하세요.

고객의 이메일 주소와 같은 기밀 정보나 중요한 정보는 태그나 **이름** 필드와 같은 자유 형식 텍스트 필드에 입력하지 않는 것이 좋습니다. 여기에는 CloudFront 또는 기타 AWS 서비스 서비스에서 콘솔, API, AWS CLI 또는 AWS SDK를 사용하여 작업하는 경우가 포함됩니다. 이름에 사용되는 태그 또는 자유 형식 텍스트 필드에 입력하는 모든 데이터는 청구 또는 진단 로그에 사용될 수 있습니다. 외부 서버에 URL을 제공할 때 해당 서버에 대한 요청을 검증하기 위해 자격 증명을 URL에 포함해서는 안 됩니다.

Amazon CloudFront는 제공하는 콘텐츠의 보안을 유지하는 데 사용할 수 있는 몇 가지 옵션을 제공합니다.
+ HTTPS 연결 구성
+ 전송 중 특정 데이터에 대한 추가 보안을 제공하도록 필드 수준 암호화를 구성합니다.
+ 특정 사람이나 특정 영역의 사람만 볼 수 있도록 콘텐츠에 대한 액세스 제한

다음 주제에서는 이러한 옵션에 대해 자세히 설명합니다.

**Topics**
+ [전송 중 데이터 암호화](#data-protection-summary-encryption-in-transit)
+ [저장된 암호화](#data-protection-summary-encryption-at-rest)
+ [콘텐츠에 대한 액세스 제한](#data-protection-summary-restrict-access)

## 전송 중 데이터 암호화
<a name="data-protection-summary-encryption-in-transit"></a>

전송 중 데이터를 암호화하려면 최종 사용자가 HTTPS를 사용하여 파일을 요청하도록 Amazon CloudFront를 구성합니다. 이렇게 하면 CloudFront가 최종 사용자와 통신할 때 연결이 암호화됩니다. 또한 CloudFront가 오리진의 파일을 받을 때 HTTPS를 사용하도록 구성할 수 있습니다. 이렇게 하면 CloudFront가 오리진과 통신할 때 연결이 암호화됩니다.

자세한 내용은 [CloudFront에서 HTTPS 사용](using-https.md) 단원을 참조하세요.

필드 레벨 암호화는 HTTPS와 함께 추가 보안 레이어를 추가하여 시스템 처리 전체에서 특정 데이터를 보호하고 특정 애플리케이션만 이를 볼 수 있도록 합니다. CloudFront에서 필드 수준 암호화를 구성하여 사용자가 제출한 중요한 정보를 웹 서버에 안전하게 업로드할 수 있습니다. 클라이언트가 제공하는 중요한 정보는 사용자에게 더 가까운 엣지에서 암호화됩니다. 전체 애플리케이션 스택에서 암호화된 상태로 유지되므로 데이터가 필요하고 이를 해독할 자격 증명이 있는 애플리케이션만 이 작업을 수행할 수 있습니다.

자세한 내용은 [필드 수준 암호화를 사용하여 민감한 데이터 보호](field-level-encryption.md) 단원을 참조하세요.

CloudFront API 엔드포인트, `cloudfront.amazonaws.com` 및 `cloudfront-fips.amazonaws.com`는 HTTPS 트래픽만 허용합니다. 즉, CloudFront API를 사용하여 정보를 주고받을 때 배포 구성, 캐시 정책 및 오리진 요청 정책, 키 그룹 및 퍼블릭 키, CloudFront 함수의 함수 코드 등의 데이터가 전송 중에 항상 암호화됩니다. 또한 CloudFront API 엔드포인트로 전송된 모든 요청은 AWS 자격 증명으로 서명되고 AWS CloudTrail에 로그인됩니다.

CloudFront 함수의 함수 코드 및 구성은 엣지 로케이션 포인트(POP)로 복사되거나 CloudFront에서 사용하는 다른 스토리지 위치 간에 복사될 때 전송 중에 항상 암호화됩니다.

## 저장된 암호화
<a name="data-protection-summary-encryption-at-rest"></a>

CloudFront Functions의 함수 코드 및 구성은 항상 엣지 로케이션 POP와 CloudFront에서 사용하는 다른 스토리지 위치에 암호화된 형식으로 저장됩니다.

## 콘텐츠에 대한 액세스 제한
<a name="data-protection-summary-restrict-access"></a>

인터넷을 통해 콘텐츠를 배포하는 많은 회사에서는 일부 사용자를 대상으로 하는 콘텐츠, 문서, 비즈니스 데이터 또는 미디어 스트림에 대한 액세스를 제한하고자 합니다. Amazon CloudFront를 사용하여 이 콘텐츠를 안전하게 제공하려면 다음 중 하나 이상을 수행하면 됩니다.

**서명된 URL 또는 쿠키 사용**  
서명된 URL 또는 서명된 쿠키를 사용하여 CloudFront를 통해 이 프라이빗 콘텐츠를 제공함으로써 선택된 사용자(예: 유료 사용자)를 대상으로 하는 콘텐츠에 대한 액세스를 제한할 수 있습니다. 자세한 내용은 [서명된 URL과 서명된 쿠키를 사용하여 프라이빗 콘텐츠 제공](PrivateContent.md) 단원을 참조하세요.

**Amazon S3 버킷의 콘텐츠에 대한 액세스 제한**  
예를 들어 CloudFront 서명된 URL 또는 서명된 쿠키를 사용해 콘텐츠에 대한 액세스를 제한하는 경우 사용자가 파일에 대한 직접 URL을 사용하여 파일을 보는 것도 원치 않을 것입니다. 대신, 보호가 작동하도록 CloudFront URL을 사용해야만 파일에 액세스하도록 허용할 수 있습니다.  
Amazon S3 버킷을 CloudFront 배포의 오리진으로 사용하는 경우 오리진 액세스 제어(OAC)를 설정하여 S3 버킷에 대한 액세스를 제한할 수 있습니다. 자세한 내용은 [Amazon S3 오리진에 대한 액세스 제한](private-content-restricting-access-to-s3.md) 섹션을 참조하세요.

**Application Load Balancer가 제공하는 콘텐츠에 대한 액세스 제한**  
Elastic Load Balancing에서 Application Load Balancer와 함께 CloudFront를 오리진으로 사용하면 사용자가 Application Load Balancer에 직접 액세스할 수 없도록 CloudFront를 구성할 수 있습니다. 이렇게 하면 사용자가 CloudFront를 통해서만 Application Load Balancer에 액세스할 수 있으므로 CloudFront를 사용할 때의 이점을 실현할 수 있습니다. 자세한 내용은 [Application Load Balancer에 대한 액세스 제한](restrict-access-to-load-balancer.md) 단원을 참조하세요.

**AWS WAF 웹 ACL 사용**  
웹 애플리케이션 방화벽 서비스인 AWS WAF를 사용하여 웹 액세스 제어 목록(웹 ACL)을 만들어 콘텐츠에 대한 액세스를 제한할 수 있습니다. 요청이 시작되는 IP 주소 또는 쿼리 문자열의 값과 같이 사용자가 지정하는 조건에 따라 CloudFront는 요청된 콘텐츠 또는 HTTP 403 상태 코드(사용 권한 없음)로 요청에 응답합니다. 자세한 내용은 [AWS WAF 보호 사용](distribution-web-awswaf.md) 단원을 참조하세요.

**지리적 제한 사용**  
*지리적 차단*이라고도 하는 *지리적 제한*을 사용하여 특정 지리적 위치에 있는 사용자가 CloudFront 배포를 통해 제공한 콘텐츠에 액세스하는 것을 차단할 수 있습니다. 지리적 제한을 구성할 때 몇 가지 옵션을 선택할 수 있습니다. 자세한 내용은 [콘텐츠의 지리적 배포 제한](georestrictions.md) 단원을 참조하세요.

# 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)를 참조하세요.

# Amazon CloudFront의 로깅 및 모니터링
<a name="logging-and-monitoring"></a>

모니터링은 CloudFront 및 AWS 솔루션의 가용성과 성능을 유지하는 데 중요한 부분입니다. 다중 지점 실패가 발생할 경우 보다 쉽게 디버깅할 수 있도록 AWS 솔루션의 모든 부분으로부터 모니터링 데이터를 수집해야 합니다.AWS는 CloudFront 리소스와 활동을 모니터링하고 잠재적 인시던트에 대응하기 위한 여러 도구를 제공합니다.

**Amazon CloudWatch 경보**  
CloudWatch 경보를 사용하면 지정한 기간 동안 단일 지표를 감시할 수 있습니다. 지표가 지정된 임계값을 초과하면 Amazon SNS 주제 또는 AWS Auto Scaling 정책으로 알림이 전송됩니다. CloudWatch 경보는 지표가 특정 상태에 있다고 해서 작업을 호출하지 않습니다. 대신, 상태가 변경되어 지정된 기간 동안 유지되어야 합니다.  
자세한 내용은 [Amazon CloudWatch를 사용한 CloudFront 지표 모니터링](monitoring-using-cloudwatch.md) 단원을 참조하세요.

**AWS CloudTrail 로그**  
CloudTrail은 CloudFront에서 사용자, 역할 또는 AWS 서비스가 수행한 API 작업의 기록을 제공합니다. CloudTrail에서 수집한 정보를 사용하여 CloudFront에 수행된 API 요청, 요청이 수행된 IP 주소, 요청을 수행한 사람, 요청이 수행된 시간 및 추가 세부 정보를 확인할 수 있습니다.  
자세한 내용은 [AWS CloudTrail을 사용하여 Amazon CloudFront API 직접 호출 로깅](logging_using_cloudtrail.md) 섹션을 참조하세요.

**CloudFront 표준 로그 및 실시간 액세스 로그**  
CloudFront 로그는 배포에 대해 이루어진 요청에 대한 상세 레코드를 제공합니다. 이러한 로그는 많은 애플리케이션에 유용합니다. 예를 들어 로그 정보는 보안 및 액세스 감사에 유용할 수 있습니다.  
자세한 내용은 [액세스 로그(표준 로그)](AccessLogs.md) 및 [실시간 액세스 로그 구성 생성 및 사용](real-time-logs.md#create-real-time-log-config)(을)를 참조하세요.

**엣지 함수 로그**  
엣지 함수(CloudFront Functions 및 Lambda@Edge 모두)에서 생성된 로그는 Amazon CloudWatch Logs로 직접 전송되며 CloudFront에서는 어디에도 저장되지 않습니다. CloudFront Functions는 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)을 사용하여 사용자 계정의 CloudWatch Logs로 사용자가 생성한 로그를 직접 전송합니다.  
 자세한 내용은 [엣지 함수 로그](edge-functions-logs.md) 섹션을 참조하세요.

**CloudFront 콘솔 보고서**  
CloudFront 콘솔에는 캐시 통계 보고서, 많이 사용되는 객체 보고서 및 주요 참조 보고서 등의 다양한 보고서가 포함되어 있습니다. 대부분의 CloudFront 콘솔 보고서는 CloudFront 액세스 로그의 데이터를 기반으로 합니다. 이 로그에는 CloudFront가 수신하는 모든 사용자 요청에 대한 세부 정보가 포함되어 있습니다. 그러나 보고서를 보기 위해 액세스 로그를 활성화할 필요는 없습니다.  
자세한 내용은 [콘솔에서 CloudFront 보고서 보기](reports.md) 단원을 참조하세요.

# Amazon CloudFront에 대한 규정 준수 확인
<a name="compliance"></a>

타사 감사자는 여러 AWS 규정 준수 프로그램의 일환으로 Amazon CloudFront의 보안 및 규정 준수를 평가합니다. 여기에는 SOC, PCI, HIPAA 등이 포함됩니다.

특정 규정 준수 프로그램 범위에 속하는 AWS 서비스의 목록은 [규정 준수 프로그램 제공 AWS 범위 내 서비스](https://aws.amazon.com/compliance/services-in-scope/) 페이지에서 확인하세요. 일반 정보는 [AWS 규정 준수 프로그램](https://aws.amazon.com/compliance/programs/)을 참조하세요.

AWS Artifact를 사용하여 제3자 감사 보고서를 다운로드할 수 있습니다. 자세한 설명은 [AWS Artifact의 보고서 다운로드](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)를 참조합니다.

CloudFront 사용 시 규정 준수 책임은 데이터의 민감도, 회사의 규정 준수 목표 및 관련 법률과 규정에 따라 결정됩니다. AWS에서는 규정 준수를 지원할 다음과 같은 리소스를 제공합니다.
+ [보안 및 규정 준수 빠른 시작 안내서](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) – 이 배포 안내서에서는 아키텍처 고려 사항에 대해 설명하고 AWS에서 보안 및 규정 준수에 중점을 둔 기본 환경을 배포하기 위한 단계를 제공합니다.
+ [AWS에 대한 Architecting for HIPAA Security and Compliance](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.html) - 이 백서는 기업에서 AWS를 사용하여 HIPAA를 준수하는 애플리케이션 생성 방법을 설명합니다.

  AWS HIPAA 규정 준수 프로그램에는 CloudFront가 HIPAA 적격 서비스로 CloudFront(CloudFront 임베디드 POP를 통한 콘텐츠 전송 제외)가 HIPAA 적격 서비스로 포함되어 있습니다. AWS와 BAA(Business Associate Addendum)를 체결한 경우, CloudFront(CloudFront 임베디드 POP를 통한 콘텐츠 전송 제외)를 사용하여 PHI(보호 대상 건강 정보)가 포함된 콘텐츠를 제공할 수 있습니다. 자세한 내용은 [HIPAA 규정 준수](https://aws.amazon.com/compliance/hipaa-compliance/)를 참조하세요.
+ [AWS 규정 준수 리소스](https://aws.amazon.com/compliance/resources/) – 사용자의 업계와 위치에 해당할 수 있는 워크북 및 안내서 모음입니다.
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) – 이 AWS 서비스로 리소스 구성이 내부 관행, 업계 지침 및 규정을 준수하는 정도를 평가할 수 있습니다.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) - 이 AWS 서비스는 보안 제어를 사용하여 리소스 구성 및 보안 표준을 평가하여 다양한 규정 준수 프레임워크를 준수할 수 있도록 지원합니다. Security Hub CSPM을 사용하여 CloudFront 리소스를 평가하는 방법에 대한 자세한 내용은 *AWS Security Hub CSPM 사용 설명서*의 [Amazon CloudFront 제어](https://docs.aws.amazon.com/securityhub/latest/userguide/cloudfront-controls.html)를 참조하세요.

## CloudFront 규정 준수 모범 사례
<a name="compliance-best-practices"></a>

이 단원에서는 Amazon CloudFront를 사용하여 콘텐츠를 제공할 때 규정 준수를 위해 참고할 수 있는 모범 사례 및 권장 사항을 제공합니다.

[AWS 공동 책임 모델](https://aws.amazon.com/compliance/shared-responsibility-model/)에 따라 PCI 또는 HIPAA 규정에 맞는 워크로드를 실행하는 경우, 향후 감사를 위해 과거 365일 간의 CloudFront 사용 데이터를 기록해 두는 것이 좋습니다. 사용 데이터를 기록하는 방법은 다음과 같습니다.
+ CloudFront 액세스 로그 활성화 자세한 내용은 [액세스 로그(표준 로그)](AccessLogs.md) 섹션을 참조하세요.
+ CloudFront API로 전송된 요청을 캡처합니다. 자세한 내용은 [AWS CloudTrail을 사용하여 Amazon CloudFront API 직접 호출 로깅](logging_using_cloudtrail.md) 섹션을 참조하세요.

또한 CloudFront가 PCI DSS 및 SOC 표준을 준수하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

### Payment Card Industry Data Security Standard(PCI DSS)
<a name="compliance-pci"></a>

CloudFront(CloudFront 임베디드 POP를 통한 콘텐츠 전송 제외)에서는 전자 상거래 웹사이트 운영자 또는 서비스 공급자에 의한 신용 카드 데이터의 처리, 저장 및 전송을 지원하며, Payment Card Industry(PCI) Data Security Standard(DSS) 준수를 검증 받았습니다. AWS PCI 규정 준수 패키지의 사본을 요청하는 방법 등 PCI DSS에 대해 자세히 알아보려면 [PCI DSS 레벨 1](https://aws.amazon.com/compliance/pci-dss-level-1-faqs/)을 참조하세요.

보안을 위해 신용 카드 정보를 CloudFront 엣지 캐시에 캐싱하지 않는 것이 좋습니다. 예를 들어, 신용카드 번호 마지막 4자리와 신용카드 소유자의 연락처 정보와 같은 정보를 담고 있는 응답에 `Cache-Control:no-cache="`*field-name*`"` 헤더가 포함되도록 오리진을 구성할 수 있습니다.

### SOC(시스템 및 조직 제어)
<a name="compliance-soc"></a>

CloudFront(CloudFront 임베디드 POP를 통한 콘텐츠 전송 제외)는 SOC 1, SOC 2 및 SOC 3을 포함한 시스템 및 조직 제어(SOC) 측정값을 준수합니다. SOC 보고서는 AWS가 주요 규정 준수 제어 항목 및 제어 대상을 어떻게 준수하고 있는지를 입증하는 독립적인 타사 심사 보고서입니다. 이러한 감사는 고객 및 회사 데이터의 보안, 기밀성 및 가용성에 영향을 미칠 수 있는 위험으로부터 보호하기 위해 적절한 보호 및 절차가 시행되고 있는지 확인합니다. 이러한 타사 감사의 결과는 [AWS SOC 규정 준수 웹 사이트](https://aws.amazon.com/compliance/soc-faqs/)에서 사용할 수 있습니다. 이 사이트에서는 게시된 보고서를 검토하여 AWS 작업 및 규정 준수를 지원하는 제어에 대한 추가 정보를 확인할 수 있습니다.

# Amazon CloudFront의 복원성
<a name="disaster-recovery-resiliency"></a>

AWS 글로벌 인프라는 AWS리전 및 가용 영역을 중심으로 구축됩니다. AWS 리전은 물리적으로 분리되고 격리된 다수의 가용 리전을 제공하며 이러한 가용 리전은 짧은 지연 시간, 높은 처리량 및 높은 중복성을 갖춘 네트워크에 연결되어 있습니다. 가용 영역을 사용하면 중단 없이 가용 영역 간에 자동으로 장애 조치가 이루어지는 애플리케이션 및 데이터베이스를 설계하고 운영할 수 있습니다. 가용 영역은 기존의 단일 또는 다중 데이터 센터 인프라보다 가용성, 내결함성, 확장성이 뛰어납니다.

AWS 리전 및 가용 영역에 대한 자세한 내용은 [AWS 글로벌 인프라](https://aws.amazon.com/about-aws/global-infrastructure/)를 참조하십시오.

## CloudFront 오리진 장애 조치
<a name="disaster-recovery-resiliency.origin-failover"></a>

Amazon CloudFront는 AWS 글로벌 인프라를 지원할 뿐만 아니라 *오리진 장애 조치* 기능을 제공하여 데이터 복원성 요구 사항을 지원합니다. CloudFront는 *엣지 로케이션* 또는 *POP(Point of Presence)*라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠를 제공하는 글로벌 서비스입니다. 콘텐츠가 엣지 로케이션에 캐싱되어 있지 않은 경우 CloudFront는 최종 버전의 콘텐츠 소스로 식별한 오리진에서 해당 콘텐츠를 검색합니다.

오리진 장애 조치로 CloudFront를 설정하면 특정 시나리오의 복원력을 향상시키고 가용성을 높일 수 있습니다. 시작하려면 CloudFront의 기본 오리진과 두 번째 오리진을 지정하는 오리진 그룹을 생성합니다. 기본 오리진이 특정 HTTP 상태 코드 실패 응답을 반환하면 CloudFront가 자동으로 두 번째 오리진으로 전환됩니다. 자세한 내용은 [CloudFront 오리진 장애 조치를 통한 고가용성 최적화](high_availability_origin_failover.md) 단원을 참조하십시오.

# Amazon CloudFront의 인프라 보안
<a name="infrastructure-security"></a>

관리형 서비스인 Amazon CloudFront는 AWS 글로벌 네트워크 보안으로 보호됩니다. AWS 보안 서비스와 AWS의 인프라 보호 방법에 대한 자세한 내용은 [AWS Cloud Security](https://aws.amazon.com/security/)을 참조하세요. 인프라 보안에 대한 모범 사례를 사용하여 AWS 환경을 설계하려면 보안 원칙 AWS Well‐Architected Framework**의 [인프라 보호](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)를 참조하세요.

AWS에서 게시한 API 직접 호출을 사용하여 네트워크를 통해 CloudFront에 액세스합니다. 고객은 다음을 지원해야 합니다.
+ Transport Layer Security(TLS) TLS 1.2는 필수이며 TLS 1.3을 권장합니다.
+ DHE(Ephemeral Diffie-Hellman) 또는 ECDHE(Elliptic Curve Ephemeral Diffie-Hellman)와 같은 완전 전송 보안(PFS)이 포함된 암호 제품군 Java 7 이상의 최신 시스템은 대부분 이러한 모드를 지원합니다.

CloudFront Functions는 AWS 계정 간에 매우 안전한 격리 장벽을 사용하므로 고객 환경이 Spectre 및 Meltdown과 같은 부채널 공격으로부터 안전하게 보호됩니다. 함수는 다른 고객에게 속한 데이터에 액세스하거나 이를 수정할 수 없습니다. 함수는 하이퍼스레딩 없이 전용 CPU에서 전용 단일 스레드 프로세스에서 실행됩니다. 지정된 모든 CloudFront 엣지 로케이션 POP(Point of Presence)에서 CloudFront 함수는 한 번에 한 명의 고객에게만 응답하고 모든 고객별 데이터는 함수 실행 사이에 지워집니다.