

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

# Amazon Rekognition Custom Labels 설정
<a name="setting-up"></a>

다음 지침은 Amazon Rekognition Custom Labels 콘솔과 SDK를 설정하는 방법을 보여줍니다.

Amazon Rekognition Custom Labels 콘솔은 다음 브라우저에서 사용할 수 있습니다.
+ **Chrome**: 버전 21 이상
+ **Firefox**: 버전 27 이상
+ **Microsoft Edge**: 버전 88 이상
+ **Safari**: 버전 7 이상 또한 Amazon Rekognition Custom Labels 콘솔에서는 Safari를 사용하여 경계 상자를 그릴 수 없습니다. 자세한 내용은 [경계 상자로 객체에 레이블 지정](md-localize-objects.md) 단원을 참조하십시오.

Amazon Rekognition Custom Labels를 처음으로 사용하기 전에 다음 작업을 완료해야 합니다.

**Topics**
+ [1단계: AWS 계정 생성](su-account.md)
+ [2단계: Amazon Rekognition Custom Labels 콘솔 권한 설정](su-console-policy.md)
+ [3단계: 콘솔 버킷 생성](su-create-console-bucket.md)
+ [4단계: AWS CLI 및 AWS SDKs 설정](su-awscli-sdk.md)
+ [5단계: (선택 사항) 훈련 파일 암호화](su-encrypt-bucket.md)
+ [6단계: (선택 사항) 이전 데이터 세트를 새 프로젝트와 연결](su-associate-prior-dataset.md)

# 1단계: AWS 계정 생성
<a name="su-account"></a>

이 단계에서는 AWS 계정을 생성하고, 관리 사용자를 생성하고, AWS SDK에 프로그래밍 방식으로 액세스 권한을 부여하는 방법에 대해 알아봅니다.

**Topics**
+ [에 가입 AWS 계정](#sign-up-for-aws)
+ [관리자 액세스 권한이 있는 사용자 생성](#create-an-admin)
+ [프로그래밍 방식 액세스](#su-sdk-programmatic-access)

## 에 가입 AWS 계정
<a name="sign-up-for-aws"></a>

이 없는 경우 다음 단계를 AWS 계정완료하여 생성합니다.

**에 가입하려면 AWS 계정**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)을 엽니다.

1. 온라인 지시 사항을 따르세요.

   등록 절차 중 전화 또는 텍스트 메시지를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.

   에 가입하면 AWS 계정*AWS 계정 루트 사용자*이 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스할 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 [루트 사용자 액세스 권한이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)을 수행하는 것입니다.

AWS 는 가입 프로세스가 완료된 후 확인 이메일을 보냅니다. 언제든지 [https://aws.amazon.com/](https://aws.amazon.com/)으로 이동하고 **내 계정**을 선택하여 현재 계정 활동을 확인하고 계정을 관리할 수 있습니다.

## 관리자 액세스 권한이 있는 사용자 생성
<a name="create-an-admin"></a>

에 가입한 후 일상적인 작업에 루트 사용자를 사용하지 않도록 관리 사용자를 AWS 계정보호 AWS IAM Identity Center, AWS 계정 루트 사용자활성화 및 생성합니다.

**보안 AWS 계정 루트 사용자**

1.  **루트 사용자를** 선택하고 AWS 계정 이메일 주소를 입력하여 계정 소유자[AWS Management Console](https://console.aws.amazon.com/)로에 로그인합니다. 다음 페이지에서 비밀번호를 입력합니다.

   루트 사용자를 사용하여 로그인하는 데 도움이 필요하면 *AWS Sign-In 사용 설명서*의 [루트 사용자로 로그인](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)을 참조하세요.

1. 루트 사용자의 다중 인증(MFA)을 활성화합니다.

   지침은 *IAM 사용 설명서*의 [AWS 계정 루트 사용자(콘솔)에 대한 가상 MFA 디바이스 활성화를 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html).

**관리자 액세스 권한이 있는 사용자 생성**

1. IAM Identity Center를 활성화합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [AWS IAM Identity Center설정](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)을 참조하세요.

1. IAM Identity Center에서 사용자에게 관리 액세스 권한을 부여합니다.

   를 자격 증명 소스 IAM Identity Center 디렉터리 로 사용하는 방법에 대한 자습서는 사용 *AWS IAM Identity Center 설명서*[의 기본값으로 사용자 액세스 구성을 IAM Identity Center 디렉터리](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) 참조하세요.

**관리 액세스 권한이 있는 사용자로 로그인**
+ IAM IDentity Center 사용자로 로그인하려면 IAM Identity Center 사용자를 생성할 때 이메일 주소로 전송된 로그인 URL을 사용합니다.

  IAM Identity Center 사용자를 사용하여 로그인하는 데 도움이 필요하면 *AWS Sign-In 사용 설명서*[의 AWS 액세스 포털에 로그인](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)을 참조하세요.

**추가 사용자에게 액세스 권한 할당**

1. IAM Identity Center에서 최소 권한 적용 모범 사례를 따르는 권한 세트를 생성합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)를 참조하세요.

1. 사용자를 그룹에 할당하고, 그룹에 Single Sign-On 액세스 권한을 할당합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [그룹 추가](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)를 참조하세요.

## 프로그래밍 방식 액세스
<a name="su-sdk-programmatic-access"></a>

사용자는 AWS 외부에서와 상호 작용하려는 경우 프로그래밍 방식으로 액세스해야 합니다 AWS Management Console. 프로그래밍 방식 액세스를 부여하는 방법은에 액세스하는 사용자 유형에 따라 다릅니다 AWS.

사용자에게 프로그래밍 방식 액세스 권한을 부여하려면 다음 옵션 중 하나를 선택합니다.


****  

| 프로그래밍 방식 액세스가 필요한 사용자 | 목적 | 방법 | 
| --- | --- | --- | 
| IAM | (권장) 콘솔 자격 증명을 임시 자격 증명으로 사용하여 AWS CLI, AWS SDKs 또는 AWS APIs. |  사용하고자 하는 인터페이스에 대한 지침을 따릅니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/rekognition/latest/customlabels-dg/su-account.html)  | 
|  작업 인력 ID (IAM Identity Center에서 관리되는 사용자)  | 임시 자격 증명을 사용하여 AWS CLI, AWS SDKs 또는 AWS APIs. |  사용하고자 하는 인터페이스에 대한 지침을 따릅니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/rekognition/latest/customlabels-dg/su-account.html)  | 
| IAM | 임시 자격 증명을 사용하여 AWS CLI, AWS SDKs 또는 AWS APIs. | IAM 사용 설명서의 [AWS 리소스에서 임시 자격 증명 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)의 지침을 따릅니다. | 
| IAM | (권장되지 않음)장기 자격 증명을 사용하여 AWS CLI, AWS SDKs 또는 AWS APIs. |  사용하고자 하는 인터페이스에 대한 지침을 따릅니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/rekognition/latest/customlabels-dg/su-account.html)  | 

# 2단계: Amazon Rekognition Custom Labels 콘솔 권한 설정
<a name="su-console-policy"></a>

Amazon Rekognition 콘솔을 사용하려면 적절한 권한을 갖도록 추가해야 합니다. 훈련 파일을 [콘솔 버킷](su-create-console-bucket.md)이 아닌 다른 버킷에 저장하려면 추가 권한이 필요합니다.

**Topics**
+ [콘솔 액세스 허용](#su-console-access)
+ [외부 Amazon S3 버킷에 액세스](#su-external-buckets)
+ [권한 할당](#su-assign-permissions)

## 콘솔 액세스 허용
<a name="su-console-access"></a>

Amazon Rekognition Custom Labels 콘솔을 사용하려면 Amazon S3, SageMaker AI Ground Truth 및 Amazon Rekognition Custom Labels를 다루는 다음 IAM 정책이 필요합니다. 권한을 할당하는 방법에 대한 자세한 내용은 [권한 할당](#su-assign-permissions) 항목을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "s3Policies",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:CreateBucket",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:GetObjectTagging",
                "s3:GetBucketVersioning",
                "s3:GetObjectVersionTagging",
                "s3:PutBucketCORS",
                "s3:PutLifecycleConfiguration",
                "s3:PutBucketPolicy",
                "s3:PutObject",
                "s3:PutObjectTagging",
                "s3:PutBucketVersioning",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::custom-labels-console-*"

            ]
        },
        {
            "Sid": "rekognitionPolicies",
            "Effect": "Allow",
            "Action": [
                "rekognition:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "groundTruthPolicies",
            "Effect": "Allow",
            "Action": [
                "groundtruthlabeling:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 외부 Amazon S3 버킷에 액세스
<a name="su-external-buckets"></a>

새 AWS 리전에서 Amazon Rekognition Custom Labels 콘솔을 처음 열면 Amazon Rekognition Custom Labels가 프로젝트 파일을 저장하는 데 사용되는 버킷(콘솔 버킷)을 생성합니다. 또는 자체 Amazon S3 버킷(외부 버킷)을 사용하여 이미지 또는 매니페스트 파일을 콘솔에 업로드할 수 있습니다. 외부 버킷을 사용하려면 이전 정책에 다음 정책 블록을 추가하세요. `amzn-s3-demo-bucket`을 버킷의 이름으로 바꿉니다.

```
        {
            "Sid": "s3ExternalBucketPolicies",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:GetObjectTagging",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*"
            ]
        }
```

## 권한 할당
<a name="su-assign-permissions"></a>

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
+ 의 사용자 및 그룹 AWS IAM Identity Center:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용자 안내서*에서 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ ID 제공업체를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 설명서*에서 [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)의 지침을 따릅니다.
  + (권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서**에서 [사용자(콘솔)에 권한 추가](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)의 지침을 따르세요.

# 3단계: 콘솔 버킷 생성
<a name="su-create-console-bucket"></a>

Amazon Rekognition Custom Labels 프로젝트를 사용하여 모델을 생성하고 관리할 수 있습니다. 새 AWS 리전에서 Amazon Rekognition Custom Labels 콘솔을 처음 열면 Amazon Rekognition Custom Labels가 프로젝트를 저장할 Amazon S3 버킷(콘솔 버킷)을 생성합니다. AWS SDK 작업 또는 데이터 세트 생성과 같은 콘솔 작업에서 버킷 이름을 사용해야 할 수 있으므로 나중에 참조할 수 있는 위치에 콘솔 버킷 이름을 기록해 두어야 합니다.

버킷 이름의 형식은 `custom-labels-console`-*<region>*-*<random value>*입니다. 임의 값은 버킷 이름 간에 충돌이 발생하지 않도록 합니다.

**콘솔 버킷을 생성하려면**

1. 사용자에게 적절한 권한이 있는지 확인합니다. 자세한 내용은 [콘솔 액세스 허용](su-console-policy.md#su-console-access) 단원을 참조하십시오.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/) Amazon Rekognition 콘솔을 엽니다.

1. **Get started**를 선택합니다.

1. 현재 AWS 리전에서 콘솔을 처음 연 경우 **최초 설정 대화 상자**가 표시됩니다.

   1. 표시된 Amazon S3 버킷의 이름을 복사합니다. 나중에 이 정보가 필요합니다.

   1. **S3 버킷 생성**을 선택하여 Amazon Rekognition Custom Labels가 사용자를 대신하여 Amazon S3 버킷(콘솔 버킷)을 생성하게 하세요.

1. 브라우저 창을 닫습니다.

# 4단계: AWS CLI 및 AWS SDKs 설정
<a name="su-awscli-sdk"></a>

Amazon Rekognition Custom Labels를 AWS Command Line Interface (AWS CLI) 및 AWS SDKs. 터미널에서 Amazon Rekognition Custom Labels 작업을 실행해야 하는 경우 AWS CLI를 설치하세요. 애플리케이션을 생성하는 경우 사용 중인 프로그래밍 언어에 맞는 AWS SDK를 다운로드합니다.

**Topics**
+ [AWS SDKS 설치](#sdk-install-sdk)
+ [프로그래밍 방식 액세스 권한 부여](su-sdk-programmatic-access.md)
+ [SDK 권한 설정](su-sdk-permissions.md)
+ [Amazon Rekognition Custom Labels 작업을 직접 호출합니다.](su-sdk-list-projects.md)

## AWS SDKS 설치
<a name="sdk-install-sdk"></a>

단계에 따라 AWS SDKs를 다운로드하고 구성합니다.

**AWS CLI 및 AWS SDKs를 설정하려면**
+ 및 사용하려는 AWS SDKs를 다운로드[AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)하여 설치합니다. 이 가이드에서는 AWS CLI, [Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html) 및 [Python](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation)에 대한 예제를 제공합니다. SDK 설치 AWS SDKs. [https://aws.amazon.com/tools/](https://aws.amazon.com/tools/) 

# 프로그래밍 방식 액세스 권한 부여
<a name="su-sdk-programmatic-access"></a>

이 가이드의 AWS CLI 및 코드 예제는 로컬 컴퓨터 또는 Amazon Elastic Compute Cloud 인스턴스와 같은 기타 AWS 환경에서 실행할 수 있습니다. 예제를 실행하려면 예제에서 사용하는 AWS SDK 작업에 대한 액세스 권한을 부여해야 합니다.

**Topics**
+ [로컬 컴퓨터에서 코드 실행](#su-sdk-programmatic-access-general)
+ [AWS 환경에서 코드 실행](#su-sdk-aws-environments)

## 로컬 컴퓨터에서 코드 실행
<a name="su-sdk-programmatic-access-general"></a>

로컬 컴퓨터에서 코드를 실행하려면 단기 자격 증명을 사용하여 사용자에게 AWS SDK 작업에 대한 액세스 권한을 부여하는 것이 좋습니다. 로컬 컴퓨터에서 AWS CLI 및 코드 예제를 실행하는 방법에 대한 자세한 내용은 섹션을 참조하세요[로컬 컴퓨터에서 프로필 사용](#su-sdk-programmatic-access-customlabels-examples).

사용자는 AWS 외부에서와 상호 작용하려는 경우 프로그래밍 방식으로 액세스해야 합니다 AWS Management Console. 프로그래밍 방식 액세스를 부여하는 방법은에 액세스하는 사용자 유형에 따라 다릅니다 AWS.

사용자에게 프로그래밍 방식 액세스 권한을 부여하려면 다음 옵션 중 하나를 선택합니다.


****  

| 프로그래밍 방식 액세스가 필요한 사용자 | 목적 | 방법 | 
| --- | --- | --- | 
| IAM | (권장) 콘솔 자격 증명을 임시 자격 증명으로 사용하여 AWS CLI, AWS SDKs 또는 AWS APIs. |  사용하고자 하는 인터페이스에 대한 지침을 따릅니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 
|  작업 인력 ID (IAM Identity Center에서 관리되는 사용자)  | 임시 자격 증명을 사용하여 AWS CLI, AWS SDKs 또는 AWS APIs. |  사용하고자 하는 인터페이스에 대한 지침을 따릅니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 
| IAM | 임시 자격 증명을 사용하여 AWS CLI, AWS SDKs 또는 AWS APIs. | IAM 사용 설명서의 [AWS 리소스에서 임시 자격 증명 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)의 지침을 따릅니다. | 
| IAM | (권장되지 않음)장기 자격 증명을 사용하여 AWS CLI, AWS SDKs 또는 AWS APIs. |  사용하고자 하는 인터페이스에 대한 지침을 따릅니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 

### 로컬 컴퓨터에서 프로필 사용
<a name="su-sdk-programmatic-access-customlabels-examples"></a>

에서 생성한 단기 자격 증명을 사용하여이 설명서의 AWS CLI 및 코드 예제를 실행할 수 있습니다[로컬 컴퓨터에서 코드 실행](#su-sdk-programmatic-access-general). 보안 인증 정보 및 기타 설정 정보를 가져오려면, 예제에서는 `custom-labels-access` 이름의 프로필을 사용합니다. 예를 들어: 

```
session = boto3.Session(profile_name='custom-labels-access')
rekognition_client = session.client("rekognition")
```

프로필이 나타내는 사용자에게 Amazon Rekognition Custom Labels SDK 작업 및 예제에 필요한 기타 AWS SDK 작업을 호출할 수 있는 권한이 있어야 합니다. 자세한 내용은 [SDK 권한 설정](su-sdk-permissions.md) 단원을 참조하십시오. 권한을 할당하려면 [SDK 권한 설정](su-sdk-permissions.md) 항목을 참조하세요.

 AWS CLI 및 코드 예제와 함께 작동하는 프로파일을 생성하려면 다음 중 하나를 선택합니다. 생성한 프로필의 이름이 `custom-labels-access`인지 확인하세요.
+ IAM으로 관리하는 사용자 — [IAM 역할로 전환(AWS CLI)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-cli.html)의 지침을 따르세요.
+ 작업 인력 자격 증명(에서 관리하는 사용자 AWS IAM Identity Center) - [사용할 AWS CLI 구성의 AWS IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) 지침을 따릅니다. 코드 예제의 경우 IAM ID 센터를 통한 인증을 지원하는 AWS 툴킷을 지원하는 통합 개발 환경(IDE)을 사용하는 것이 좋습니다. Java 예제는 [Java로 구축 시작](https://aws.amazon.com/developer/language/java/)을 참조하세요. Python 예제는 [Python으로 구축 시작](https://aws.amazon.com/developer/tools/#IDE_and_IDE_Toolkits)을 참조하세요. 자세한 정보는 [IAM Identity Center 보안 인증 정보](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html)를 참조하세요.

**참고**  
코드를 사용하여 단기 보안 인증 정보를 얻을 수 있습니다. 자세한 내용은 [IAM 역할로 전환(API)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_use_switch-role-api.html)을 참조하세요. IAM Identity Center의 경우 [CLI 액세스를 위한 IAM 역할 자격 증명 가져오기](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html)의 지침에 따라 역할에 대한 단기 보안 인증 정보를 받으세요.

## AWS 환경에서 코드 실행
<a name="su-sdk-aws-environments"></a>

사용자 자격 증명을 사용하여 AWS Lambda 함수에서 실행되는 프로덕션 코드와 같은 AWS 환경에서 AWS SDK 호출에 서명해서는 안 됩니다. 대신 코드에 필요한 권한을 정의하는 역할을 구성합니다. 그런 다음 코드가 실행되는 환경에 역할을 연결합니다. 역할을 연결하고 임시 보안 인증 정보를 사용할 수 있게 하는 방법은 코드가 실행되는 환경에 따라 달라집니다.
+ AWS Lambda 함수 - Lambda 함수의 실행 역할을 수임할 때 Lambda가 함수에 자동으로 제공하는 임시 자격 증명을 사용합니다. 보안 인증 정보는 Lambda 환경 변수에서 사용할 수 있습니다. 프로필을 지정할 필요가 없습니다. 자세한 내용을 알아보려면 [Lambda 실행 역할](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)을 참조하세요.
+ Amazon EC2 - Amazon EC2 인스턴스 메타데이터 엔드포인트 보안 인증 인증 정보를 사용합니다. 공급자는 Amazon EC2 인스턴스에 연결한 Amazon EC2 인스턴스 프로파일을 사용하여 자동으로 보안 인증 정보를 생성하고 새로 고칩니다.** 자세한 내용은 [IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)를 참조하세요.
+ Amazon Elastic 컨테이너 서비스 - 컨테이너 보안 인증 정보 공급자를 사용하세요. Amazon ECS는 메타데이터 엔드포인트로 보안 인증 정보를 전송하고 새로 고칩니다. 지정한 작업 IAM 역할은 애플리케이션이 사용하는 보안 인증 정보를 관리하기 위한 전략을 제공합니다.** 자세한 내용은 [AWS 서비스와 상호 작용](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)을 참조하세요.

보안 인증 정보 공급자에 대한 자세한 정보는 [표준화된 보안 인증 정보 공급자](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)를 참조하세요.

# SDK 권한 설정
<a name="su-sdk-permissions"></a>

Amazon Rekognition Custom Labels SDK 작업을 사용하려면 Amazon Rekognition Custom Labels API 및 모델 훈련에 사용되는 Amazon S3 버킷에 대한 액세스 권한이 필요합니다.

**Topics**
+ [SDK 작업 권한 부여](#su-grant-sdk-permissions)
+ [AWS SDK 사용에 대한 정책 업데이트](#su-sdk-policy-update)
+ [권한 할당](#su-sdk-assign-permissions)

## SDK 작업 권한 부여
<a name="su-grant-sdk-permissions"></a>

작업을 수행하는 데 필요한 권한만 부여하는 것을 권장합니다(최소 권한). 예를 들어 [DetectCustomLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectCustomLabels.html)를 직접 호출하려면 `rekognition:DetectCustomLabels`를 수행할 권한이 필요합니다. 작업에 대한 권한을 찾으려면 [API 참조](https://docs.aws.amazon.com/rekognition/latest/APIReference/Welcome.html)를 확인하세요.

애플리케이션을 막 시작하는 경우 필요한 특정 권한을 모를 수 있으므로 더 광범위한 권한으로 시작할 수 있습니다. AWS 관리형 정책은 시작하는 데 도움이 되는 권한을 제공합니다. `AmazonRekognitionCustomLabelsFullAccess` AWS 관리형 정책을 사용하여 Amazon Rekognition Custom Labels API에 대한 전체 액세스 권한을 얻을 수 있습니다. 자세한 내용은 [AWS 관리형 정책: AmazonRekognitionCustomLabelsFullAccess](https://docs.aws.amazon.com/rekognition/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-custom-labels-full-access)를 참조하세요. 애플리케이션에 필요한 권한을 알고 있는 경우, 사용자에게 필요한 고객 관리형 정책을 정의하여 권한을 줄이세요. 자세한 내용은 [고객 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)을 참조하세요.

권한을 할당하려면 [권한 할당](#su-sdk-assign-permissions) 항목을 참조하세요.

## AWS SDK 사용에 대한 정책 업데이트
<a name="su-sdk-policy-update"></a>

 AWS SDK를 Amazon Rekognition Custom Labels의 최신 릴리스와 함께 사용하려면 더 이상 훈련 및 테스트 이미지가 포함된 Amazon S3 버킷에 액세스할 수 있는 권한을 Amazon Rekognition Custom Labels에 부여할 필요가 없습니다. 이전에 권한을 추가한 경우 권한을 제거할 필요가 없습니다. 원하는 경우 보안 주체에 대한 서비스가 `rekognition.amazonaws.com`인 버킷에서 정책을 제거하세요. 예제:

```
"Principal": {
    "Service": "rekognition.amazonaws.com"
}
```

자세한 내용은 [버킷 정책 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)을 참조하세요.

## 권한 할당
<a name="su-sdk-assign-permissions"></a>

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
+ 의 사용자 및 그룹 AWS IAM Identity Center:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용자 안내서*에서 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ ID 제공업체를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 설명서*에서 [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)의 지침을 따릅니다.
  + (권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서**에서 [사용자(콘솔)에 권한 추가](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)의 지침을 따르세요.

# Amazon Rekognition Custom Labels 작업을 직접 호출합니다.
<a name="su-sdk-list-projects"></a>

다음 코드를 실행하여 Amazon Rekognition Custom Labels API를 직접 호출할 수 있는지 확인합니다. 코드는 현재 AWS 리전의 AWS 계정에 있는 프로젝트를 나열합니다. 이전에 프로젝트를 생성하지 않은 경우 응답은 비어 있지만 `DescribeProjects` 작업을 직접 호출할 수 있다는 확인은 표시됩니다.

일반적으로 예제 함수를 직접 호출하려면 AWS SDK Rekognition 클라이언트와 기타 필수 파라미터가 필요합니다. AWS SDK 클라이언트는 기본 함수에서 선언됩니다.

코드가 실패할 경우 사용하는 사용자에게 올바른 권한이 있는지 확인하세요. 또한 Amazon Rekognition Custom Labels로 사용하는 AWS 리전을 일부 AWS 리전에서 사용할 수 없는지 확인합니다.

**Amazon Rekognition Custom Labels 작업을 직접 호출하려면**

1. 아직 설치하지 않은 경우 및 AWS SDKs AWS CLI 를 설치하고 구성합니다. 자세한 내용은 [4단계: AWS CLI 및 AWS SDKs 설정](su-awscli-sdk.md) 단원을 참조하십시오.

1. 다음 예제 코드를 사용하여 프로젝트를 확인하십시오.

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

   `describe-projects` 명령어를 사용하여 계정에 있는 프로젝트를 나열합니다.

   ```
   aws rekognition describe-projects \
   --profile custom-labels-access
   ```

------
#### [ Python ]

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   This example shows how to describe your Amazon Rekognition Custom Labels projects.
   If you haven't previously created a project in the current AWS Region,
   the response is an empty list, but does confirm that you can call an
   Amazon Rekognition Custom Labels operation.
   """
   from botocore.exceptions import ClientError
   import boto3
   
   def describe_projects(rekognition_client):
       """
       Lists information about the projects that are in in your AWS account
       and in the current AWS Region.
   
       : param rekognition_client: A Boto3 Rekognition client.
       """
       try:
           response = rekognition_client.describe_projects()
           for project in response["ProjectDescriptions"]:
               print("Status: " + project["Status"])
               print("ARN: " + project["ProjectArn"])
               print()
           print("Done!")
       except ClientError as err:
           print(f"Couldn't describe projects. \n{err}")
           raise
   
   
   def main():
       """
       Entrypoint for script.
       """
   
       session = boto3.Session(profile_name='custom-labels-access')
       rekognition_client = session.client("rekognition")
   
       describe_projects(rekognition_client)
   
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Java V2 ]

   ```
   /*
      Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
      SPDX-License-Identifier: Apache-2.0
   */
   
   package com.example.rekognition;
   
   import java.util.ArrayList;
   import java.util.List;
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.DatasetMetadata;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsRequest;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsResponse;
   import software.amazon.awssdk.services.rekognition.model.ProjectDescription;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   
   public class Hello {
   
       public static final Logger logger = Logger.getLogger(Hello.class.getName());
   
       public static void describeMyProjects(RekognitionClient rekClient) {
   
           DescribeProjectsRequest descProjects = null;
   
           // If a single project name is supplied, build projectNames argument
   
           List<String> projectNames = new ArrayList<String>();
   
   
           descProjects = DescribeProjectsRequest.builder().build();
   
           // Display useful information for each project.
   
           DescribeProjectsResponse resp = rekClient.describeProjects(descProjects);
   
           for (ProjectDescription projectDescription : resp.projectDescriptions()) {
   
               System.out.println("ARN: " + projectDescription.projectArn());
               System.out.println("Status: " + projectDescription.statusAsString());
               if (projectDescription.hasDatasets()) {
                   for (DatasetMetadata datasetDescription : projectDescription.datasets()) {
                       System.out.println("\tdataset Type: " + datasetDescription.datasetTypeAsString());
                       System.out.println("\tdataset ARN: " + datasetDescription.datasetArn());
                       System.out.println("\tdataset Status: " + datasetDescription.statusAsString());
                   }
               }
               System.out.println();
           }
   
       }
   
       public static void main(String[] args) {
   
           try {
   
               // Get the Rekognition client
               RekognitionClient rekClient = RekognitionClient.builder()
                   .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                   .region(Region.US_WEST_2)
                   .build();
               
               // Describe projects
   
               describeMyProjects(rekClient);
   
               rekClient.close();
   
           } catch (RekognitionException rekError) {
               logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
               System.exit(1);
           }
   
       }
   
   }
   ```

------

# 5단계: (선택 사항) 훈련 파일 암호화
<a name="su-encrypt-bucket"></a>

다음 옵션 중 하나를 선택하여 콘솔 버킷 또는 외부 Amazon S3 버킷에 있는 Amazon Rekognition Custom Labels 매니페스트 파일 및 이미지 파일을 암호화할 수 있습니다.
+ Amazon S3 관리형 키(SSE-S3)를 사용하세요.
+ 를 사용합니다 AWS KMS key.
**참고**  
직접 호출하는 [IAM 보안 주체](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal%23intro-structure-principal)에는 파일을 해독할 수 있는 권한이 필요합니다. 자세한 내용은 [로 암호화된 파일 복호화 AWS Key Management Service](#su-kms-encryption) 단원을 참조하십시오.

Amazon S3 버킷 암호화에 대한 자세한 내용은 [Amazon S3 버킷에 대한 Amazon S3 기본 서버 측 암호화 동작 설정](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html)을 참조하세요.

## 로 암호화된 파일 복호화 AWS Key Management Service
<a name="su-kms-encryption"></a>

 AWS Key Management Service (KMS)를 사용하여 Amazon Rekognition Custom Labels 매니페스트 파일 및 이미지 파일을 암호화하는 경우 Amazon Rekognition Custom Labels를 호출하는 IAM 보안 주체를 KMS 키의 키 정책에 추가합니다. 이렇게 하면 Amazon Rekognition Custom Labels가 교육 전에 매니페스트와 이미지 파일을 해독할 수 있습니다. 자세한 정보는 [사용자 지정 AWS KMS 키를 사용하는 기본 암호화가 있는 내 Amazon S3 버킷을 참조하세요. 사용자가 버킷에서 다운로드하고 버킷에 업로드하도록 허용하려면 어떻게 해야 합니까?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-access-default-encryption/)

IAM 보안 주체에는 KMS 키에 대한 다음 권한이 필요합니다.
+ kms:GenerateDataKey
+ kms:Decrypt

자세한 내용은 [AWS Key Management Service에 저장된 KMS 키를 사용한 서버 측 암호화(SSE-KMS)를 사용하여 데이터 보호](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)를 참조하세요.

## 복사한 훈련 및 테스트 이미지 암호화
<a name="w2aab8c21c11"></a>

모델을 훈련하기 위해 Amazon Rekognition Custom Labels는 소스 훈련 및 테스트 이미지의 사본을 만듭니다. 기본적으로 복사된 이미지는 AWS가 소유하고 관리하는 키로 암호화됩니다. 사용자의 AWS KMS key를 사용하는 방법도 있습니다. 자체 KMS 키를 사용하는 경우 KMS 키에 다음 권한이 필요합니다.
+ kms:CreateGrant
+ kms:DescribeKey

콘솔로 모델을 훈련하거나 `CreateProjectVersion` 작업을 직접 호출할 때 KMS 키를 지정할 수도 있습니다. 사용하는 KMS 키는 Amazon S3 버킷의 매니페스트 및 이미지 파일을 암호화하는 데 사용하는 KMS 키와 같지 않아도 됩니다. 자세한 내용은 [5단계: (선택 사항) 훈련 파일 암호화](#su-encrypt-bucket) 단원을 참조하십시오.

자세한 내용은 [AWS Key Management Service 개념](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)을 참조하세요. 소스 이미지는 영향을 받지 않습니다.

모델 훈련에 대한 자세한 내용은 [Amazon Rekognition Custom Labels 모델 훈련](training-model.md) 항목을 참조하세요.

# 6단계: (선택 사항) 이전 데이터 세트를 새 프로젝트와 연결
<a name="su-associate-prior-dataset"></a>

Amazon Rekognition Custom Labels는 이제 프로젝트와 함께 데이터 세트를 관리합니다. 생성한 이전 데이터 세트는 읽기 전용이므로 프로젝트에 연결해야 사용할 수 있습니다. 콘솔에서 프로젝트의 세부 정보 페이지를 열면 프로젝트 모델의 최신 버전을 훈련한 데이터 세트가 프로젝트에 자동으로 연결됩니다. AWS SDK를 사용하는 경우 프로젝트와 데이터 세트의 자동 연결은 수행되지 않습니다.

연결되지 않은 이전 데이터 세트는 모델 훈련에 사용된 적이 없거나 이전 버전의 모델을 훈련하는 데 사용된 적이 없습니다. 이전 데이터 세트 페이지에는 관련 데이터 세트와 연결되지 않은 데이터 세트가 모두 표시됩니다.

연결되지 않은 이전 데이터 세트를 사용하려면 이전 데이터 세트 페이지에서 새 프로젝트를 만드세요. 데이터 세트는 새 프로젝트의 훈련 데이터 세트가 됩니다. 이전 데이터 세트에는 여러 연결이 있을 수 있으므로 이미 연결된 데이터 세트에 대한 프로젝트를 만들 수도 있습니다.

**이전 데이터 세트를 새 프로젝트에 연결하는 방법**

1. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)에서 Amazon Rekognition 콘솔을 엽니다.

1. 왼쪽 창에서 **사용자 지정 레이블** 사용을 선택합니다. Amazon Rekognition Custom Labels 랜딩 페이지가 표시됩니다.

1. 왼쪽 탐색 창에서 **이전 데이터 세트**를 선택합니다.

1. 데이터 세트 보기에서 프로젝트와 연결하려는 이전 데이터 세트를 선택합니다.

1. **데이터 세트로 프로젝트 만들기**를 선택합니다.

1. **프로젝트 생성** 페이지에서 **프로젝트 이름**에 새 프로젝트의 이름을 입력합니다.

1. 프로젝트를 생성하려면 **프로젝트 생성**을 선택합니다. 프로젝트를 만드는 데 시간이 걸릴 수 있습니다.

1. 프로젝트를 사용합니다. 자세한 내용은 [Amazon Rekognition Custom Labels의 이해](understanding-custom-labels.md) 단원을 참조하십시오.

## 이전 데이터 세트를 테스트 데이터 세트로 사용
<a name="su-prior-dataset-as-test-dataset"></a>

먼저 이전 데이터 세트를 새 프로젝트에 연결하여 이전 데이터 세트를 기존 프로젝트의 테스트 데이터 세트로 사용할 수 있습니다. 그런 다음 새 프로젝트의 훈련 데이터 세트를 기존 프로젝트의 테스트 데이터 세트에 복사합니다.

**이전 데이터 세트를 테스트 데이터 세트로 사용하려면**

1. [6단계: (선택 사항) 이전 데이터 세트를 새 프로젝트와 연결](#su-associate-prior-dataset)의 지침에 따라 이전 데이터 세트를 새 프로젝트에 연결하세요.

1. 새 프로젝트의 훈련 데이터 세트를 복사하여 기존 프로젝트에서 테스트 데이터 세트를 생성합니다. 자세한 내용은 [기존 데이터세트에서 콘텐츠 복사](md-create-dataset-existing-dataset.md) 단원을 참조하십시오.

1. [Amazon Rekognition Custom Labels 프로젝트 삭제(콘솔)](mp-delete-project.md#mp-delete-project-console)의 지침에 따라 새 프로젝트를 삭제하세요.

또는 이전 데이터 세트의 매니페스트 파일을 사용하여 테스트 데이터 세트를 만들 수도 있습니다. 자세한 내용은 [매니페스트 파일 생성](md-create-manifest-file.md) 단원을 참조하십시오.