

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

# Amazon ECR의 프라이빗 레지스트리 권한
<a name="registry-permissions"></a>

 Amazon ECR은 **레지스트리 정책**을 사용하여 프라이빗 레지스트리 수준의 AWS 보안 주체에 권한을 부여합니다.

범위는 레지스트리 정책 버전을 선택하여 설정됩니다. 레지스트리 정책 범위는 버전 1(V1)과 버전 2(V2)의 서로 다른 두 가지가 있습니다. V2는 모든 ECR 권한을 포함하는 확장된 레지스트리 정책 범위입니다. API 작업의 전체 목록은* [Amazon ECR API 안내서](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html)를 *참조하세요. V2 버전은 기본 레지스트리 정책 범위입니다. 레지스트리 정책 범위를 보거나 설정하는 방법에 대한 자세한 내용은 [확장 레지스트리 정책 범위로 전환](registry-permissions-account-settings.md) 섹션을 참조하세요. Amazon ECR 프라이빗 레지스트리의 일반 설정에 대한 자세한 내용은 [Amazon ECR의 프라이빗 레지스트리 설정](registry-settings.md) 섹션을 참조하세요.

 버전의 세부 정보는 다음과 같습니다.
+ **V1 ** - 버전 1의 경우 Amazon ECR은 프라이빗 레지스트리 수준에서만 다음 권한을 적용합니다.
  + `ecr:ReplicateImage` – 소스 레지스트리라고 하는 다른 계정에 이미지를 레지스트리에 복제할 수 있는 권한을 부여합니다. 교차 계정 복제에만 사용됩니다.
  + `ecr:BatchImportUpstreamImage` – 외부 이미지를 검색하고 이 이미지를 프라이빗 레지스트리로 가져올 수 있는 권한을 부여합니다.
  + `ecr:CreateRepository` – 프라이빗 레지스트리에 리포지토리를 생성할 수 있는 권한을 부여합니다. 이 권한은 복제되거나 캐시된 이미지를 저장하는 리포지토리가 프라이빗 레지스트리에 이미 존재하지 않는 경우에 필요합니다.
+ **V2** - 버전 2의 경우 Amazon ECR은 정책의 모든 ECR 작업을 허용하고 모든 ECR 요청에 레지스트리 정책을 적용합니다.

콘솔 또는 CLI를 사용하여 레지스트리 정책 범위를 보거나 변경할 수 있습니다.

**참고**  
`ecr:*` 작업을 프라이빗 레지스트리 정책에 추가할 수는 있지만 와일드카드를 사용하는 대신 사용 중인 기능에 따라 필요한 특정 작업만 추가하는 것이 가장 좋습니다.

**Topics**
+ [Amazon ECR에 대한 프라이빗 레지스트리 정책 예제](registry-permissions-examples.md)
+ [확장 레지스트리 정책 범위로 전환](registry-permissions-account-settings.md)
+ [Amazon ECR에서 교차 계정 복제에 대한 레지스트리 권한 부여](registry-permissions-create-replication.md)
+ [Amazon ECR에서 풀스루 캐시에 대한 레지스트리 권한 부여](registry-permissions-create-pullthroughcache.md)

# Amazon ECR에 대한 프라이빗 레지스트리 정책 예제
<a name="registry-permissions-examples"></a>

다음 예제는 사용자가 갖는 Amazon ECR 레지스트리 관련 권한을 제어하는 데 사용할 수 있는 정책 설명 보여줍니다.

**참고**  
각 예제에서 `ecr:CreateRepository` 작업이 레지스트리 정책에서 제거되면 복제가 계속 발생할 수 있습니다. 그러나 복제가 성공하려면 계정 내에서 이름이 같은 리포지토리를 만들어야 합니다.

## 예: 소스 계정의 모든 IAM 위탁자가 모든 리포지토리를 복제하도록 허용
<a name="registry-permissions-examples-all"></a>

다음 레지스트리 권한 정책은 소스 계정의 모든 IAM 위탁자(사용자 및 역할)가 모든 리포지토리를 복제하도록 허용합니다.

다음 사항에 유의하세요.
+ **중요:** 정책에서 AWS 계정 ID를 위탁자로 지정하면 루트 사용자뿐만 아니라 해당 계정 내의 모든 IAM 사용자 및 역할에 액세스 권한이 부여됩니다. 이는 전체 계정에 광범위한 액세스 권한을 제공합니다.
+ **보안 고려 사항:** 계정 수준 권한은 지정된 계정의 모든 IAM 엔터티에 액세스를 부여합니다. 보다 제한적인 액세스를 원하는 경우, 개별 IAM 사용자 및 역할을 지정하거나 조건문을 사용하여 액세스를 추가로 제한합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"ReplicationAccessCrossAccount",
            "Effect":"Allow",
            "Principal":{
                "AWS":"arn:aws:iam::111122223333:root"
            },
            "Action":[
                "ecr:CreateRepository",
                "ecr:ReplicateImage"
            ],
            "Resource": [
                "arn:aws:ecr:us-west-2:444455556666:repository/*"
            ]
        }
    ]
}
```

------

## 예: 여러 계정의 IAM 위탁자 허용
<a name="registry-permissions-examples-multiple"></a>

다음 레지스트리 권한 정책에는 두 개의 문이 있습니다. 각 문은 소스 계정의 모든 IAM 위탁자(사용자 및 역할)가 모든 리포지토리를 복제하도록 허용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"ReplicationAccessCrossAccount1",
            "Effect":"Allow",
            "Principal":{
                "AWS":"arn:aws:iam::111122223333:root"
            },
            "Action":[
                "ecr:CreateRepository",
                "ecr:ReplicateImage"
            ],
            "Resource": [
                "arn:aws:ecr:us-west-2:123456789012:repository/*"
            ]
        },
        {
            "Sid":"ReplicationAccessCrossAccount2",
            "Effect":"Allow",
            "Principal":{
                "AWS":"arn:aws:iam::444455556666:root"
            },
            "Action":[
                "ecr:CreateRepository",
                "ecr:ReplicateImage"
            ],
            "Resource": [
                "arn:aws:ecr:us-west-2:123456789012:repository/*"
            ]
        }
    ]
}
```

------

## 예: 소스 계정의 모든 AIM 위탁자가 접두사가 `prod-`인 모든 리포지토리를 복제하도록 허용합니다.
<a name="registry-permissions-examples-specific"></a>

다음 레지스트리 권한 정책은 소스 계정의 모든 IAM 위탁자(사용자 및 역할)가 ` prod-`로 시작하는 모든 리포지토리를 복제하도록 허용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"ReplicationAccessCrossAccount",
            "Effect":"Allow",
            "Principal":{
                "AWS":"arn:aws:iam::111122223333:root"
            },
            "Action":[
                "ecr:CreateRepository",
                "ecr:ReplicateImage"
            ],
            "Resource": [
                "arn:aws:ecr:us-west-2:444455556666:repository/prod-*"
            ]
        }
    ]
}
```

------

# 확장 레지스트리 정책 범위로 전환
<a name="registry-permissions-account-settings"></a>

**중요**  
새 사용자의 경우 생성 시 ` V2` 레지스트리 정책을 사용하도록 레지스트리가 자동으로 구성됩니다. 사용자가 취해야 할 조치가 없습니다. Amazon ECR은 이전 레지스트리 정책`V1`으로 되돌리는 것을 권장하지 않습니다.

콘솔 또는 CLI를 사용하여 레지스트리 정책 범위를 보거나 변경할 수 있습니다.

------
#### [ AWS Management Console ]

다음 단계에 따라 계정 설정을 보세요. 레지스트리 정책 범위를 보거나 업데이트하려면 이 페이지의 CLI 절차를 참조하세요.

**프라이빗 레지스트리에 대해 향상된 레지스트리 정책 켜기**

1.  [ https://console.aws.amazon.com/ecr/private-registry/repositories Amazon ECR 콘솔을 엽니다.](https://console.aws.amazon.com/ecr/private-registry/repositories)

1. 탐색 모음에서 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **기능 및 설정**을 선택한 다음 **권한**을 선택합니다.

1. **권한** 페이지의 **레지스트리 정책**에서 정책 JSON을 확인합니다. V1 정책이 있는 경우 V2로 업데이트하는 지침이 담긴 배너가 표시됩니다. **활성화**를 선택합니다.

   레지스트리 정책 범위가 V2로 업데이트되었음을 가리키는 배너가 표시됩니다.

1. 서택적으로 CLI를 사용하여 권한을 구성할 수도 있습니다. 자세한 내용은 [Amazon ECR의 프라이빗 레지스트리 설정](registry-settings.md) 단원을 참조하십시오.
**참고**  
레지스트리 정책 범위를 보거나 업데이트하려면 이 페이지의 CLI 절차를 참조하세요.

------
#### [ AWS CLI ]

Amazon ECR은 V2 레지스트리 정책을 생성합니다. 다음 단계에 따라 레지스트리 정책 범위를 보거나 업데이트합니다. 콘솔에서는 레지스트리 정책 범위를 보거나 변경할 수 없습니다.
+ 현재 사용 중인 레지스트리 정책을 검색하려면.

  ```
  aws ecr get-account-setting --name REGISTRY_POLICY_SCOPE
  ```

   name 파라미터는 필수 필드입니다. 이 이름을 제공하지 않으면 다음 오류가 발생합니다.

  ```
   aws: error: the following arguments are required: --name
  ```

  레지스트리 정책 명령의 출력을 봅니다. 다음 예제 출력에서 레지스트리 정책 버전은 V1입니다.

  ```
  {
      "name": "REGISTRY_POLICY_SCOPE",
      "value": "V1"
  }
  ```

  레지스트리 정책 버전은 `V1`에서 `V2`로 변경할 수 있습니다. V1은 권장되는 레지스트리 정책 범위가 아닙니다.

  ```
  aws ecr put-account-setting --name REGISTRY_POLICY_SCOPE --value value
  ```

  예를 들어, 다음 명령을 사용하여 V2로 업데이트합니다.

  ```
  aws ecr put-account-setting --name REGISTRY_POLICY_SCOPE --value V2
  ```

  레지스트리 정책 명령의 출력을 봅니다. 다음 예제 출력에서는 레지스트리 정책 버전이 V2로 업데이트되었습니다.

  ```
  {
      "name": "REGISTRY_POLICY_SCOPE",
      "value": "V2"
  }
  ```

------

# Amazon ECR에서 교차 계정 복제에 대한 레지스트리 권한 부여
<a name="registry-permissions-create-replication"></a>

교차 계정 정책 유형은 AWS 보안 주체에 권한을 부여하여 소스 레지스트리에서 레지스트리로 리포지토리 복제를 허용하는 데 사용됩니다. 기본적으로 자체 레지스트리 내에서 교차 리전 복제를 구성할 수 있는 권한이 있습니다. 레지스트리에 콘텐츠를 복제할 수 있는 다른 계정에 권한을 부여하는 경우에만 레지스트리 정책을 구성하면 됩니다.

레지스트리 정책은 `ecr:ReplicateImage` API 작업에 대해 권한을 부여해야 합니다. 이 API는 리전 또는 계정 간에 이미지를 복제할 수 있는 내부 Amazon ECR API입니다. ` ecr:CreateRepository` 권한에 대한 권한을 부여할 수 있습니다. 이 권한을 사용하면 Amazon ECR이 레지스트리에 리포지토리가 없는 경우 리포지토리를 생성할 수 있습니다. 만약 `ecr:CreateRepository` 권한이 제공되지 않으면 소스 리포지토리와 이름이 같은 리포지토리를 레지스트리에 수동으로 생성해야 합니다. 두 작업이 모두 수행되지 않으면 복제가 실패합니다. 실패한 `CreateRepository` 또는 `ReplicateImage` API 작업은 모두 CloudTrail에 표시됩니다.

## 복제에 대한 권한 정책을 구성하는 방법(AWS Management Console)
<a name="registry-permissions-create-console"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 레지스트리 정책을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**와 **기능 및 설정**을 선택한 다음 **권한**을 선택합니다.

1. **레지스트리 권한(Registry permissions)** 페이지에서 **문 생성(Generate statement)**을 선택합니다.

1. 정책 생성기를 사용하여 정책 설명을 정의하려면 다음 단계를 수행하세요.

   1. **정책 유형**에서 **복제 - 교차 계정**을 선택합니다.

   1. **설명 ID**에 고유한 설명 ID를 입력합니다. 이 필드는 레지스트리 정책에서 `Sid`로 사용됩니다.

   1. **계정(Accounts)**에는 권한을 부여할 각 계정의 계정 ID를 입력합니다. 여러 계정 ID를 지정할 경우 쉼표로 구분합니다.

1. **저장**을 선택합니다.

## 복제에 대한 권한 정책을 구성하는 방법(AWS CLI)
<a name="registry-permissions-create-cli"></a>

1. `registry_policy.json`이라는 이름의 파일을 만들고 레지스트리 정책으로 채웁니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement":[
           {
               "Sid":"ReplicationAccessCrossAccount",
               "Effect":"Allow",
               "Principal":{
                   "AWS":"arn:aws:iam::111122223333:root"
               },
               "Action":[
                   "ecr:CreateRepository",
                   "ecr:ReplicateImage"
               ],
               "Resource": [
                   "arn:aws:ecr:us-west-2:444455556666:repository/*"
               ]
           }
       ]
   }
   ```

------

1. 정책 파일을 사용하여 레지스트리 정책을 만듭니다.

   ```
   aws ecr put-registry-policy \
         --policy-text file://registry_policy.json \
         --region us-west-2
   ```

1. 레지스트리에 대한 정책을 검색하여 확인합니다.

   ```
   aws ecr get-registry-policy \
         --region us-west-2
   ```

# Amazon ECR에서 풀스루 캐시에 대한 레지스트리 권한 부여
<a name="registry-permissions-create-pullthroughcache"></a>

Amazon ECR 프라이빗 레지스트리 권한은 풀스루 캐시를 사용하도록 개별 IAM 엔터티의 권한 범위를 지정하는 데 활용할 수 있습니다. IAM 엔터티에 레지스트리 권한 정책에서 허용하는 권한보다 IAM 정책에서 부여한 권한이 많을 경우 IAM 정책이 우선합니다.

**프라이빗 레지스트리에 대한 권한 정책을 생성하는 방법(AWS Management Console)**

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 권한 문을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**를 선택하고 **기능 및 설정을** 선택한 다음 ** 권한을** 선택합니다.

1. **레지스트리 권한(Registry permissions)** 페이지에서 **문 생성(Generate statement)**을 선택합니다.

1. 생성하려는 각 풀스루 캐시 권한 정책 문에 대해 다음을 수행합니다.

   1. **정책 유형(Policy type)**으로 **풀스루 캐시 정책(Pull through cache policy)**을 선택합니다.

   1. **문 ID(Statement id)**에서 풀스루 캐시 문 정책의 이름을 입력합니다.

   1. **IAM 엔터티(IAM entities)**에서 정책에 포함할 사용자, 그룹 또는 역할을 지정합니다.

   1. **리포지토리 네임스페이스**에서 정책을 연결할 풀스루 캐시 규칙을 선택합니다.

   1. **리포지토리 이름(Repository names)**에서 규칙을 적용할 리포지토리 기본 이름을 지정합니다. 예를 들어, Amazon ECR Public에서 Amazon Linux 리포지토리를 지정하려는 경우 리포지토리 이름은 ` amazonlinux`입니다.