사용자 지정 모델을 다른 AWS 계정과 공유 - Amazon Comprehend

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

사용자 지정 모델을 다른 AWS 계정과 공유

Amazon Comprehend를 사용하면 사용자 지정 모델을 다른 사람과 공유하여 다른 사용자가 자신의 AWS 계정으로 이 모델을 가져올 수 있습니다. 사용자가 사용자 지정 모델 중 하나를 가져오면 자신의 계정에 새 사용자 지정 모델을 생성합니다. 이 새 모델은 공유받은 모델과 중복됩니다.

사용자 지정 모델을 공유하려면 다른 사용자가 모델을 가져올 수 있도록 권한을 부여하는 정책을 모델에 연결해야 합니다. 그런 다음 해당 사용자에게 필요한 세부 정보를 제공합니다.

참고

공유한 사용자 지정 모델을 다른 사용자가 가져올 때는 해당 모델이 포함된 동일한 AWS 리전(예: 미국 동부(버지니아 북부))을 사용해야 합니다.

시작하기 전 준비 사항

모델을 공유하려면 먼저 사용자 AWS 계정의 Amazon Comprehend에 학습된 사용자 지정 분류기 또는 사용자 지정 개체 인식기가 있어야 합니다. 모델 학습에 대한 자세한 정보는 사용자 지정 분류 또는 사용자 지정 개체 인식을 참조하십시오.

필요한 권한

사용자 지정 모델에 리소스 기반 정책을 추가하려면 먼저 AWS Identity and Access Management(IAM)에 권한이 있어야 합니다. 다음 예시와 같이 모델 정책을 만들고, 가져오고, 삭제할 수 있으려면 사용자, 그룹 또는 역할에 정책이 연결되어 있어야 합니다.

예 사용자 지정 모델의 리소스 기반 정책을 관리하기 위한 IAM 정책
{ "Effect": "Allow", "Action": [ "comprehend:PutResourcePolicy", "comprehend:DeleteResourcePolicy", "comprehend:DescribeResourcePolicy" ], "Resource": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/foo/version/*" }

IAM 정책 생성에 대한 자세한 내용은 사용 설명서IAM 정책 생성을 참조하십시오. IAM 정책 연결 방법에 대한 자세한 내용은 IAM 사용 설명서IAM 자격 증명 권한 추가 및 제거를 참조하십시오.

암호화된 모델을 공유하는 경우 AWS KMS에 대한 권한을 추가해야 할 수 있습니다. 이 요구 사항은 Amazon Comprehend에서 모델을 암호화하는 데 사용하는 KMS 키 유형에 따라 다릅니다.

AWS 소유 키는 AWS 서비스에서 소유하고 관리합니다. AWS 소유 키를 사용하는 경우 AWS KMS에 대한 권한을 추가할 필요가 없으며 이 섹션을 건너뛰어도 됩니다.

고객 관리형 키 는 사용자가 AWS 계정에서 생성, 소유 및 관리하는 키입니다. 고객 관리형 키를 사용하는 경우 KMS 키 정책에 설명을 추가해야 합니다.

정책문은 하나 이상의 개체(예: 사용자 또는 계정)가 모델을 해독하는 데 필요한 AWS KMS 작업을 수행할 수 있는 권한을 부여합니다.

조건 키를 사용하면 혼동된 대리자 문제를 방지하는 데 도움이 됩니다. 자세한 내용은 교차 서비스 혼동된 대리자 방지를 참조하십시오.

정책에서 다음 조건 키를 사용하여 KMS 키에 액세스하는 개체를 검증합니다. 사용자가 모델을 가져올 때 AWS KMS가 소스 모델 버전의 ARN이 조건과 일치하는지 확인합니다. 정책에 조건을 포함하지 않으면 지정된 보안 주체가 KMS 키를 사용하여 모든 모델 버전을 해독할 수 있습니다.

  • aws: SourceArn — 이 조건 키를 kms:GenerateDataKeykms:Decrypt 작업과 함께 사용합니다.

  • kms: EncryptionContext — 이 조건 키를 kms:GenerateDataKeykms:Decrypt, 및 kms:CreateGrant 작업과 함께 사용합니다.

다음 예제에서 정책은 AWS 계정 444455556666에게 AWS 계정 111122223333이 소유한 지정된 분류기 모델의 버전 1을 사용할 수 있도록 승인합니다.

예 특정 분류기 모델 버전에 액세스하기 위한 KMS 키 정책
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/classifierName/version/1" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:comprehend:arn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/classifierName/version/1" } } } ] }

다음 예제 정책은 Amazon Comprehend 서비스를 통해 KMS 키를 AWS 계정 444455556666 주고 ExampleUser ExampleRoleAWS 계정123456789012받는 사용자에게 이 KMS 키에 액세스할 수 있는 권한을 부여합니다.

예 Amazon Comprehend 서비스에 대한 액세스를 허용하는 KMS 키 정책(대안 1).
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/ExampleUser", "arn:aws:iam::123456789012:role/ExampleRole" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:comprehend:*" } } }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/ExampleUser", "arn:aws:iam::123456789012:role/ExampleRole" ] }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:comprehend:arn": "arn:aws:comprehend:*" } } } ] }

다음 예제 정책은 AWS 계정 444455556666이 이전 예제의 대체 구문을 사용하여 Amazon Comprehend 서비스를 통해 이 KMS 키에 액세스할 수 있도록 승인합니다.

예 Amazon Comprehend 서비스에 대한 액세스를 허용하는 KMS 키 정책(대안 2).
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:comprehend:arn": "arn:aws:comprehend:*" } } } ] }

자세한 내용은 AWS Key Management Service 개발자 안내서AWS KMS의 키 정책을 참조하십시오.

사용자 지정 모델을 위한 리소스 기반 정책

다른 AWS 계정의 Amazon Comprehend 사용자가 사용자의 AWS 계정에서 사용자 지정 모델을 가져오려면 먼저 해당 사용자에게 권한을 부여해야 합니다. 권한을 부여하려면 공유하려는 모델 버전에 리소스 기반 정책을 추가합니다. 리소스 기반 정책은 AWS의 리소스에 연결하는 IAM 정책입니다.

사용자 지정 모델 버전에 리소스 정책을 연결하면 이 정책이 모델 버전에서 comprehend:ImportModel 작업을 수행할 수 있는 권한을 사용자, 그룹 또는 역할에 부여합니다.

예 사용자 지정 모델 버전을 위한 리소스 기반 정책

이 예제는 Principal 속성에 승인된 개체를 지정합니다. 리소스 “*”는 정책을 연결하는 특정 모델 버전을 나타냅니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "comprehend:ImportModel", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:user/ExampleUser", "arn:aws:iam::123456789012:role/ExampleRole" ] } } ] }

사용자 지정 모델에 연결하는 정책의 경우 Amazon Comprehend에서 지원하는 유일한 작업은 comprehend:ImportModel 입니다.

차이점에 대한 자세한 내용은 IAM 사용 설명서자격 증명 기반 정책 및 리소스 기반 정책을 참조하십시오.

1단계: 사용자 지정 모델에 리소스 기반 정책 추가

AWS Management Console, AWS CLI, 또는 Amazon Comprehend API를 사용하여 리소스 기반 정책을 추가할 수 있습니다.

AWS Management Console에서 Amazon Comprehend를 사용할 수 있습니다.

리소스 기반 정책을 추가하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/comprehend/에서 Amazon Comprehend 콘솔을 엽니다.

  2. 왼쪽 탐색 메뉴의 사용자 지정에서 사용자 지정 모델이 포함된 페이지를 선택합니다.

    1. 사용자 지정 문서 분류기를 공유하는 경우 사용자 지정 분류를 선택합니다.

    2. 사용자 지정 개체 인식기를 공유하는 경우 사용자 지정 개체 인식을 선택합니다.

  3. 모델 목록에서 모델을 선택하면 세부 정보 페이지가 표시됩니다.

  4. 버전에서 공유하려는 모델 버전의 이름을 선택합니다.

  5. 버전 세부 정보 페이지에서 태그, VPC 및 정책 탭을 선택합니다.

  6. 리소스 기반 정책 섹션에서 편집을 선택합니다.

  7. 신뢰 정책 편집 페이지에서 다음 작업을 수행합니다.

    1. 정책 이름에는 정책을 만든 후 해당 정책을 쉽게 알아볼 수 있는 이름을 입력합니다.

    2. 권한 부여에서 다음 개체 중 하나 이상을 지정하여 모델을 가져올 수 있도록 승인합니다.

      필드 정의 및 예제

      서비스 주체

      이 모델 버전에 액세스할 수 있는 서비스의 서비스 주체 식별자. 예:

      comprehend.amazonaws.com

      AWS 계정 ID

      이 모델 버전에 액세스할 수 있는 AWS 계정. 계정에 속한 모든 사용자에게 권한을 부여합니다. 예:

      111122223333, 123456789012

      IAM 개체

      이 모델 버전에 액세스할 수 있는 사용자 또는 역할을 위한 ARN. 예:

      arn:aws:iam: :111122223333:user/, arn:aws:iam: ExampleUser :444455556666:role/ ExampleRole

  8. 공유에서 모델 버전의 ARN을 복사하여 사용자의 모델을 가져올 사람과 공유할 수 있습니다. 누군가 다른 AWS 계정에서 사용자 지정 모델을 가져오는 경우 모델 버전 ARN이 필요합니다.

  9. 저장을 선택합니다. Amazon Comprehend는 리소스 기반 정책을 생성하여 모델에 연결합니다.

를 사용하여 사용자 지정 모델에 리소스 기반 정책을 추가하려면 명령을 사용합니다. AWS CLI PutResourcePolicy 이 명령은 다음 파라미터를 사용합니다.

  • resource-arn – 사용자 지정 모델의 ARN(모델 버전 포함).

  • resource-policy – 사용자 지정 모델에 연결할 리소스 기반 정책을 정의하는 JSON 파일.

    정책을 인라인 JSON 문자열로 제공할 수도 있습니다. 정책에 유효한 JSON을 제공하려면 속성 이름과 값을 큰 따옴표로 묶습니다. JSON 본문도 큰따옴표로 묶는 경우, 정책 내에 있는 큰따옴표를 이스케이프합니다.

  • policy-revision-id – Amazon Comprehend가 업데이트하려는 정책에 할당한 개정 ID. 이전 버전이 없는 새 정책을 생성하는 경우에는 이 파라미터를 사용하지 마십시오. Amazon Comprehend가 사용자를 대신하여 개정 ID를 생성합니다.

put-resource-policy 명령을 사용하여 사용자 지정 모델에 리소스 기반 정책을 추가합니다.

이 예제는 PolicyFile.json이라는 JSON 파일에 정책을 정의하고, 이 정책을 모델에 연결합니다. 모델은 mycf1이라는 분류기의 버전 v2입니다.

$ aws comprehend put-resource-policy \ > --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/mycf1/version/v2 \ > --resource-policy file://policyFile.json \ > --policy-revision-id revision-id

리소스 정책의 JSON 파일에는 다음 내용이 포함되어 있습니다.

  • 작업 –이 정책은 지정된 보안 주체에게 comprehend:ImportModel 사용 권한을 부여합니다.

  • 리소스 – 사용자 지정 모델의 ARN. 리소스 “*”는 put-resource-policy 명령에서 지정하는 모델 버전을 나타냅니다.

  • Principal – 이 정책은 AWS 계정 444455556666의 사용자 jane과 AWS 계정 123456789012의 모든 사용자에게 권한을 부여합니다.

{ "Version":"2012-10-17", "Statement":[ {"Sid":"ResourcePolicyForImportModel", "Effect":"Allow", "Action":["comprehend:ImportModel"], "Resource":"*", "Principal": {"AWS": ["arn:aws:iam::444455556666:user/jane", "123456789012"] } } ] }

Amazon Comprehend API를 사용하여 사용자 지정 모델에 리소스 기반 정책을 추가하려면 API 작업을 사용하십시오. PutResourcePolicy

모델을 생성하는 API 요청에서 사용자 지정 모델에 정책을 추가할 수도 있습니다. 이렇게 하려면 또는 요청을 제출할 때 ModelPolicy 파라미터에 대한 정책 JSON을 제공하십시오. CreateDocumentClassifierCreateEntityRecognizer

2단계: 다른 사용자가 가져오는 데 필요한 세부 정보를 제공하십시오.

이제 사용자 지정 모델에 리소스 기반 정책을 추가했으므로 다른 Amazon Comprehend 사용자에게 모델을 자신의 AWS 계정으로 가져올 수 있는 권한을 부여했습니다. 하지만 가져오려면 먼저 다음 세부 정보를 제공해야 합니다.

  • 모델 버전의 Amazon Resource Name (ARN).

  • 모델이 포함된 AWS 리전. 모델을 가져오는 사람은 누구나 동일한 AWS 리전을 사용해야 합니다.

  • 모델의 암호화 여부, 암호화되어 있는 경우 사용하는 AWS KMS 키, AWS 소유 키 또는 고객 관리 키 유형.

  • 모델이 고객 관리 키로 암호화된 경우 KMS 키의 ARN을 제공해야 합니다. 모델을 가져오는 사람은 누구나 자신의 AWS 계정에 IAM 서비스 역할의 ARN을 포함해야 합니다. 이 역할은 Amazon Comprehend가 KMS 키를 사용하여 모델을 가져오는 동안 모델을 복호화할 권한을 부여합니다.

다른 사용자가 모델을 가져오는 방법에 대한 자세한 정보는 다른 AWS 계정에서 사용자 지정 모델 가져오기 를 참조하십시오.