

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

# Ground Truth와 AWS Lambda 함께 사용하는 데 필요한 권한 추가
<a name="sms-custom-templates-step3-lambda-permissions"></a>

Ground Truth를 통해 AWS Lambda 를 생성하여 사용하려면 다음 중 일부 또는 전체를 구성해야 할 수 있습니다.
+ 를 사용하여 주석 전 및 주석 후 Lambda 함수를 생성하고 레이블 지정 작업을 생성할 때 선택할 수 AWS Lambda있는 IAM 역할 또는 사용자(집합적으로 IAM 엔터티) 권한을 부여해야 합니다.
+ 라벨링 작업이 구성될 때 지정된 IAM 실행 역할에는 주석 전 및 주석 후 Lambda 함수를 호출할 수 있는 권한이 필요합니다.
+ 주석 후 Lambda 함수에는 Amazon S3에 액세스할 수 있는 권한이 필요할 수 있습니다.

다음 섹션을 통해 위에서 설명한 IAM 엔티티 생성 및 권한 부여 방법을 알아보세요.

**Topics**
+ [

## AWS Lambda 함수를 생성하고 선택할 수 있는 권한 부여
](#sms-custom-templates-step3-postlambda-create-perms)
+ [

## AWS Lambda 함수를 호출할 수 있는 IAM 실행 역할 권한 부여
](#sms-custom-templates-step3-postlambda-execution-role-perms)
+ [

## 주석에 액세스할 수 있는 주석 후 Lambda 권한 부여
](#sms-custom-templates-step3-postlambda-perms)

## AWS Lambda 함수를 생성하고 선택할 수 있는 권한 부여
<a name="sms-custom-templates-step3-postlambda-create-perms"></a>

주석 전 및 주석 후 Lambda 함수를 개발하는 데 세분화된 권한이 필요하지 않은 경우 AWS 관리형 정책을 `AWSLambda_FullAccess` 사용자 또는 역할에 연결할 수 있습니다. 이 정책은 모든 Lambda 기능을 사용할 수 있는 광범위한 권한과 Lambda가 상호 작용하는 다른 AWS 서비스에서 작업을 수행할 수 있는 권한을 부여합니다.

보안에 민감한 사용 사례에 대해 보다 세분화된 정책을 생성하려면 AWS Lambda 개발자 안내서의 [Lambda에 대한 자격 증명 기반 IAM 정책](https://docs.aws.amazon.com/lambda/latest/dg/access-control-identity-based.html) 설명서를 참조하여 사용 사례에 맞는 IAM 정책을 생성하는 방법을 알아보세요.

**Lambda 콘솔 사용 정책**

IAM 엔터티에 Lambda 콘솔을 사용할 수 있는 권한을 부여하려면 AWS Lambda 개발자 안내서[의 Lambda 콘솔 사용을](https://docs.aws.amazon.com/lambda/latest/dg/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-console) 참조하세요.

또한 사용자가 Lambda 콘솔에서를 사용하여 Ground Truth 스타터 주석 전 및 주석 후 함수 AWS Serverless Application Repository 에 액세스하고 배포할 수 있게 하려면 함수를 배포할 *`<aws-region>`*을 지정하고(레이닝 작업을 생성하는 데 사용된 AWS 리전과 동일해야 함) IAM 역할에 다음 정책을 추가해야 합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:ListApplicationVersions",
                "serverlessrepo:GetApplication",
                "serverlessrepo:CreateCloudFormationTemplate"
            ],
            "Resource": "arn:aws:serverlessrepo:us-east-1:838997950401:applications/aws-sagemaker-ground-truth-recipe"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "serverlessrepo:SearchApplications",
            "Resource": "*"
        }
    ]
}
```

------

**Ground Truth 콘솔에서 Lambda 함수를 확인하기 위한 정책**

사용자가 사용자 지정 라벨링 작업을 생성할 때 Ground Truth 콘솔에서 Lambda 함수를 볼 수 있는 권한을 IAM 엔터티에 부여하려면 해당 엔터티가 [사용자 지정 레이블 워크플로 권한](sms-security-permission-console-access.md#sms-security-permissions-custom-workflow) 섹션에서 설명하는 권한을 포함하여 [Amazon SageMaker Ground Truth 콘솔을 사용하는 IAM 권한 부여](sms-security-permission-console-access.md) 섹션에 설명된 권한이 있어야 합니다.

## AWS Lambda 함수를 호출할 수 있는 IAM 실행 역할 권한 부여
<a name="sms-custom-templates-step3-postlambda-execution-role-perms"></a>

라벨링 작업을 생성하는 데 사용된 IAM 실행 역할에 IAM 관리형 정책 [AmazonSageMakerGroundTruthExecution](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerGroundTruthExecution)을 추가하면, 이 역할은 함수 이름에 `GtRecipe`, `SageMaker`, `Sagemaker`, `sagemaker` 또는 `LabelingFunction` 문자열 중 하나를 사용하여 Lambda 함수를 나열하고 호출할 권한을 가집니다.

주석 전 또는 주석 후 Lambda 함수 이름에 이전 단락의 용어 중 하나가 포함되지 않거나 `AmazonSageMakerGroundTruthExecution` 관리형 정책에 있는 것보다 더 세분화된 권한이 필요한 경우, 다음과 유사한 정책을 추가하여 실행 역할에 주석 전 및 주석 후 함수를 호출할 권한을 부여할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": [
                "arn:aws:lambda:us-east-1:111122223333:function:<pre-annotation-lambda-name>",
                "arn:aws:lambda:us-east-1:111122223333:function:<post-annotation-lambda-name>"
            ]
        }
    ]
}
```

------

## 주석에 액세스할 수 있는 주석 후 Lambda 권한 부여
<a name="sms-custom-templates-step3-postlambda-perms"></a>

[주석 후 Lambda](sms-custom-templates-step3-lambda-requirements.md#sms-custom-templates-step3-postlambda)에 설명된 대로, 주석 후 Lambda 요청에는 Amazon S3의 주석 데이터 위치가 포함됩니다. 이 위치는 `payload` 객체의 `s3Uri` 문자열로 식별됩니다. 수신 시 주석을 처리하려면 간단한 전달 함수라 하더라도 Amazon S3에서 파일을 읽을 수 있도록 주석 후 [Lambda 실행 역할](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)에 필수 권한을 할당해야 합니다.

Amazon S3의 주석 데이터에 액세스하도록 Lambda를 구성하는 방법은 여러 가지가 있습니다. 일반적인 두 가지 방법은 다음과 같습니다.
+ Lambda 실행 역할이 주석 후 Lambda 요청의 `roleArn`에서 식별된 SageMaker AI 실행 역할을 맡도록 허용합니다. 이 SageMaker AI 실행 역할은 레이블링 작업을 생성하는 데 사용되며 주석 데이터가 저장되는 Amazon S3 출력 버킷에 액세스할 수 있습니다.
+ Lambda 실행 역할에 Amazon S3 출력 버킷에 직접 액세스할 수 있는 권한을 부여합니다.

다음 섹션을 통해 이러한 옵션을 구성하는 방법을 알아보세요.

**Lambda에 SageMaker AI 실행 역할을 맡을 수 있는 권한 부여**

Lambda 함수가 SageMaker AI 실행 역할을 맡도록 허용하려면 Lambda 함수의 실행 역할에 정책을 연결하고 Lambda가 이를 수임할 수 있도록 SageMaker AI 실행 역할의 신뢰 관계를 수정해야 합니다.

1. [다음 IAM 정책을 Lambda 함수의 실행 역할에 연결](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)하여 `Resource`에서 식별된 SageMaker AI 실행 역할을 수임합니다. `222222222222`를 [AWS 계정 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)로 바꿉니다. `sm-execution-role`을 위임된 역할의 이름으로 바꿉니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::222222222222:role/sm-execution-role"
       }
   }
   ```

------

1. 다음 `Statement`를 포함하도록 SageMaker AI 실행 역할의 [신뢰 정책을 수정](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)합니다. `222222222222`를 [AWS 계정 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)로 바꿉니다. `my-lambda-execution-role`을 위임된 역할의 이름으로 바꿉니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::222222222222:role/my-lambda-execution-role"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

**Lambda 실행 역할에 S3에 액세스할 수 있는 권한 부여**

주석 후 Lambda 함수 실행 역할에 다음과 유사한 정책을 추가하여 S3 읽기 권한을 부여할 수 있습니다. *amzn-s3-demo-bucket*을 라벨링 작업 생성 시 지정하는 출력 버킷 이름으로 바꿉니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------

Lambda 콘솔에서 Lambda 실행 역할에 S3 읽기 권한을 추가하려면 다음 절차를 따르세요.

**주석 후 Lambda에 S3 읽기 권한을 추가합니다.**

1. Lambda 콘솔에서 [**함수** 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

1. 주석 후 함수의 이름을 선택합니다.

1. **구성**을 선택한 다음 **권한**을 선택합니다.

1. **역할 이름**을 선택하면 IAM 콘솔의 새 탭에 해당 역할의 요약 페이지가 열립니다.

1. **정책 연결**을 선택합니다.

1. 다음 중 하나를 수행하세요.
   + 계정에 있는 모든 버킷과 객체를 읽을 수 있는 권한을 함수에 부여하도록 **`AmazonS3ReadOnlyAccess`**를 검색해서 선택합니다.
   + 더 세분화된 권한이 필요한 경우 **정책 생성**을 선택하고 이전 섹션의 정책 예시를 사용하여 정책을 생성합니다. 정책을 생성한 후에는 실행 역할 요약 페이지로 돌아가야 합니다.

1. `AmazonS3ReadOnlyAccess` 관리형 정책을 사용한 경우 **정책 연결**을 선택합니다.

   새 정책을 생성한 경우 Lambda 실행 역할 요약 페이지로 돌아가서 방금 생성한 정책을 연결합니다.