리소스 권한 - AWS HealthOmics

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

리소스 권한

AWS HealthOmics 는 작업을 실행하거나 스토어를 생성할 때 사용자를 대신하여 다른 서비스의 리소스를 생성하고 액세스합니다. 경우에 따라 리소스에 액세스하거나 HealthOmics가 리소스에 액세스할 수 있도록 다른 서비스의 권한을 구성해야 합니다.

Amazon ECR 권한

HealthOmics 서비스가 프라이빗 Amazon ECR 리포지토리의 컨테이너에서 워크플로를 실행하기 전에 컨테이너에 대한 리소스 정책을 생성합니다. 이 정책은 HealthOmics 서비스가 컨테이너를 사용할 수 있는 권한을 부여합니다. 워크플로에서 참조하는 각 프라이빗 리포지토리에이 리소스 정책을 추가합니다.

참고

프라이빗 리포지토리와 워크플로는 동일한 리전에 있어야 합니다.

다음 섹션에서는 필요한 정책 구성에 대해 설명합니다.

Amazon ECR 리포지토리에 대한 리소스 정책 생성

HealthOmics 서비스가 리포지토리의 컨테이너를 사용하여 워크플로를 실행하도록 허용하는 리소스 정책을 생성합니다. 이 정책은 HealthOmics 서비스 보안 주체가 필요한 Amazon ECR 작업에 액세스할 수 있는 권한을 부여합니다.

다음 단계에 따라 정책을 생성합니다.

  1. Amazon ECR 콘솔에서 프라이빗 리포지토리 페이지를 열고 액세스 권한을 부여할 리포지토리를 선택합니다.

  2. 사이드바 탐색에서 권한을 선택합니다.

  3. JSON 편집을 선택합니다.

  4. 설명문 추가를 선택합니다.

  5. 다음 정책 설명을 추가한 다음 정책 저장을 선택합니다.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "omics workflow access", "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*" } ] }

교차 계정 컨테이너를 사용하여 워크플로 실행

다른 AWS 계정이 워크플로와 컨테이너를 소유한 경우 다음과 같은 교차 계정 권한을 구성해야 합니다.

  1. 워크플로를 소유한 계정에 권한을 명시적으로 부여하도록 리포지토리에 대한 Amazon ECR 정책을 업데이트합니다.

  2. 워크플로를 소유한 계정의 서비스 역할을 업데이트하여 컨테이너 이미지에 대한 액세스 권한을 부여합니다.

다음 예제에서는 워크플로를 소유한 계정에 액세스 권한을 부여하는 Amazon ECR 리소스 정책을 보여줍니다.

이 예시에서는 다음이 적용됩니다.

  • 워크플로 계정 ID: 111122223333

  • 컨테이너 리포지토리 계정 ID: 444455556666

  • 컨테이너 이름: samtools

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] }, { "Sid": "allow access to the service role of the account that owns the workflow", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/DemoCustomer" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

설정을 완료하려면 워크플로를 소유한 계정의 서비스 역할에 다음 정책 설명을 추가합니다. 이 정책은 서비스 역할이 “samtools” 컨테이너 이미지에 액세스할 수 있는 권한을 부여합니다. 계정 번호, 컨테이너 이름 및 리전을 고유한 값으로 바꿔야 합니다.

{ "Sid": "CrossAccountEcrRepoPolicy", "Effect": "Allow", "Action": ["ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer"], "Resource": "arn:aws:ecr:us-west-2:444455556666:repository/samtools" }

공유 워크플로에 대한 Amazon ECR 리포지토리 정책

참고

HealthOmics는 워크플로가 구독자 계정에서 실행되는 동안 공유 워크플로가 워크플로 소유자 계정의 Amazon ECR 리포지토리에 자동으로 액세스할 수 있도록 허용합니다. 공유 워크플로에 대한 추가 리포지토리 액세스 권한을 부여할 필요가 없습니다. 자세한 내용은 HealthOmics 워크플로 공유를 참조하세요.

기본적으로 구독자는 기본 컨테이너를 사용하기 위해 Amazon ECR 리포지토리에 액세스할 수 없습니다. 선택적으로 리포지토리의 리소스 정책에 조건 키를 추가하여 Amazon ECR 리포지토리에 대한 액세스를 사용자 지정할 수 있습니다. 다음 섹션에서는 정책 예제를 제공합니다.

특정 워크플로에 대한 액세스 제한

조건문에 개별 워크플로를 나열할 수 있으므로 이러한 워크플로만 리포지토리의 컨테이너를 사용할 수 있습니다. SourceArn 조건 키는 공유 워크플로의 ARN을 지정합니다. 다음 예제에서는 지정된 워크플로가이 리포지토리를 사용할 수 있는 권한을 부여합니다.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OmicsAccessPrincipal", "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:omics:us-east-1:111122223333:workflow/1234567" } } } ] }

특정 계정에 대한 액세스 제한

조건문에 구독자 계정을 나열할 수 있으므로 이러한 계정만 리포지토리의 컨테이너를 사용할 권한이 있습니다. SourceAccount 조건 키는 구독 AWS 계정 자의를 지정합니다. 다음 예제에서는 지정된 계정이이 리포지토리를 사용할 수 있는 권한을 부여합니다.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OmicsAccessPrincipal", "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }

다음 예제 정책과 같이 특정 구독자에 대한 Amazon ECR 권한을 거부할 수도 있습니다.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OmicsAccessPrincipal", "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceAccount": "111122223333" } } } ] }

Lake Formation 권한

HealthOmics에서 분석 기능을 사용하기 전에 Lake Formation에서 기본 데이터베이스 설정을 구성합니다.

Lake Formation에서 리소스 권한을 구성하려면
  1. Lake Formation 콘솔에서 데이터 카탈로그 설정 페이지를 엽니다.

  2. 새로 생성된 데이터베이스 및 테이블에 대한 기본 권한에서 데이터베이스 및 테이블에 대한 IAM 액세스 제어 요구 사항을 선택 취소합니다.

  3. 저장을 선택합니다.

HealthOmics Analytics는 서비스 정책에 다음 예제와 같이 올바른 RAM 권한이 있는 경우 데이터를 자동으로 수락합니다.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "omics:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:GetResourceShareInvitations" ], "Resource": "*" } ] }