

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

# 훈련을 위해 인증이 필요한 Docker 레지스트리 사용
<a name="docker-containers-adapt-your-own-private-registry-authentication"></a>

Docker 레지스트리에 인증이 필요한 경우 SageMaker AI에 액세스 자격 증명을 제공하는 AWS Lambda 함수를 생성해야 합니다. 그런 다음, 훈련 작업을 생성하고 [create\$1training\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job) API 내에 이 Lambda 함수의 ARN을 제공하세요. 마지막으로, 선택적으로 인터페이스 VPC 엔드포인트를 생성하여 VPC가 인터넷을 통해 트래픽을 전송하지 않고도 Lambda 함수와 통신할 수 있도록 할 수 있습니다. 다음 안내서는 Lambda 함수를 생성하고, 함수에 올바른 역할을 할당하고, 인터페이스 VPC 엔드포인트를 생성하는 방법을 보여줍니다.

## Lambda 함수 생성
<a name="docker-containers-adapt-your-own-private-registry-authentication-create-lambda"></a>

액세스 자격 증명을 SageMaker AI에 전달하고 응답을 반환하는 AWS Lambda 함수를 생성합니다. 다음 코드 예제는 다음과 같이 Lambda 함수 핸들러를 생성합니다.

```
def handler(event, context):
   response = {
      "Credentials": {"Username": "username", "Password": "password"}
   }
   return response
```

프라이빗 Docker 레지스트리를 설정하는 데 사용되는 인증 유형에 따라 다음과 같이 Lambda 함수가 반환하는 응답의 내용이 결정됩니다.
+ 프라이빗 Docker 레지스트리가 기본 인증을 사용하는 경우 Lambda 함수는 레지스트리 인증에 필요한 사용자 이름과 암호를 반환합니다.
+ 프라이빗 Docker 레지스트리에서 [보유자 토큰 인증](https://docs.docker.com/registry/spec/auth/token/)을 사용하는 경우 사용자 이름과 암호가 권한 부여 서버로 전송되고 권한 부여 서버는 보유자 토큰을 반환합니다. 그러면 이 토큰을 사용하여 프라이빗 Docker 레지스트리를 인증합니다.

**참고**  
동일한 계정에 레지스트리용 Lambda 함수가 두 개 이상 있고 훈련 작업에 대한 실행 역할이 동일하다면, 레지스트리 하나에 대한 훈련 작업은 다른 레지스트리의 Lambda 함수에 액세스할 수 있습니다.

## Lambda 함수에 올바른 역할 권한을 부여합니다.
<a name="docker-containers-adapt-your-own-private-registry-authentication-lambda-role"></a>

`create_training_job` API에서 사용하는 [IAMrole](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)는 AWS Lambda 함수를 호출할 수 있는 권한이 있어야 합니다. 다음 코드 예제는 `myLambdaFunction`을 호출하기 위해 IAM 역할의 권한 정책을 확장하는 방법을 보여줍니다.

```
{
    "Effect": "Allow",
    "Action": [
        "lambda:InvokeFunction"
    ],
    "Resource": [
        "arn:aws:lambda:*:*:function:*myLambdaFunction*"
    ]
}
```

역할 권한 정책을 편집하는 방법에 대한 자세한 내용은 [https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy)*AWS ID 및 액세스 관리 사용 설명서*의 역할 권한 정책 수정(콘솔)을 참조하세요.

**참고**  
**AmazonSageMakerFullAccess** 관리형 정책이 연결된 IAM 역할은 이름에 “SageMaker AI”가 포함된 모든 Lambda 함수를 직접적으로 호출할 수 있는 권한을 갖습니다.

## Lambda에 대한 인터페이스 VPC 엔드포인트를 생성하려면()
<a name="docker-containers-adapt-your-own-private-registry-authentication-lambda-endpoint"></a>

마지막으로, 인터페이스 엔드포인트를 생성할 경우, Amazon VPC가 인터넷을 통해 트래픽을 전송하지 않고도 Lambda 함수와 통신할 수 있습니다. 자세한 내용은 *AWS Lambda 개발자 안내서*에서 [Lambda에 대한 인터페이스 VPC 엔드포인트 구성](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc-endpoints.html)을 참조하세요.

인터페이스 엔드포인트가 생성되면 SageMaker 훈련은 VPC를 통해 요청을 `lambda.region.amazonaws.com`에 전송하여 Lambda 함수를 호출합니다. 인터페이스 엔드포인트를 생성할 때 **DNS 이름 활성화**를 선택하면 [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html)은 Lambda 인터페이스 엔드포인트로 호출을 라우팅합니다. 다른 DNS 공급자를 사용하는 경우 `lambda.region.amazonaws.co`m을 Lambda 인터페이스 엔드포인트에 매핑해야 합니다.