View a markdown version of this page

에 대한 서비스 역할 AWS HealthOmics - AWS HealthOmics

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

에 대한 서비스 역할 AWS HealthOmics

서비스 역할은 AWS 서비스가 계정의 리소스에 액세스할 수 있는 권한을 부여하는 AWS Identity and Access Management (IAM) 역할입니다. 가져오기 작업을 시작하거나 실행을 시작할 AWS HealthOmics 때에 서비스 역할을 제공합니다.

HealthOmics 콘솔에서 필요한 역할을 생성할 수 있습니다. HealthOmics API를 사용하여 리소스를 관리하는 경우 IAM 콘솔을 사용하여 서비스 역할을 생성합니다. 자세한 내용은 에 권한을 위임할 역할 생성을 참조하세요 AWS 서비스.

서비스 역할에는 다음과 같은 신뢰 정책이 있어야 합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

신뢰 정책은 HealthOmics 서비스가 역할을 수임하도록 허용합니다.

IAM 서비스 정책 예

이 예제에서 리소스 이름과 계정 IDs는 실제 값으로 바꿀 수 있는 자리 표시자입니다.

다음 예제에서는 실행을 시작하는 데 사용할 수 있는 서비스 역할에 대한 정책을 보여줍니다. 이 정책은 실행을 위해 Amazon S3 출력 위치, 워크플로 로그 그룹 및 Amazon ECR 컨테이너에 액세스할 수 있는 권한을 부여합니다.

참고

실행에 통화 캐싱을 사용하는 경우 실행 캐시 Amazon S3 위치를 s3 권한의 리소스로 추가합니다.

예실행을 시작하기 위한 서비스 역할 정책
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ] }, { "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/omics/WorkflowLog:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/omics/WorkflowLog:*" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability" ], "Resource": [ "arn:aws:ecr:us-east-1:123456789012:repository/*" ] } ] }

다음 예제에서는 스토어 가져오기 작업에 사용할 수 있는 서비스 역할에 대한 정책을 보여줍니다. 이 정책은 Amazon S3 입력 위치에 액세스할 수 있는 권한을 부여합니다.

예참조 스토어 작업에 대한 서비스 역할
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }

다음 예제에서는 CloudWatch에 실행 지표를 게시하는 서비스 역할에 대한 정책을 보여줍니다. 자세한 내용은 프라이빗 워크플로에 대한 지표 실행 섹션을 참조하세요.

예실행 지표에 대한 서비스 역할 정책
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*" } ] }

세션 정책을 사용하여 권한 범위 축소

세션 정책을 사용하여 개별 워크플로 실행에 대해 서비스 역할이 부여한 권한을 추가로 제한할 수 있습니다. 세션 정책은 실행을 시작할 때 제공하는 인라인 IAM 정책입니다. 실행에 대한 유효 권한은 서비스 역할의 권한과 세션 정책의 교집합입니다.

세션 정책은 다음을 수행할 때 유용합니다.

  • 단일 실행을 위해 특정 Amazon S3 버킷 또는 객체에 대한 임시 액세스 권한 부여

  • 실행별로 민감한 리소스에 대한 액세스 제한

  • 서비스 역할을 수정하지 않고 추가 보안 제어 적용

중요

세션 정책은 권한을 제한할 수만 있으며, 서비스 역할이 이미 허용하는 것 이상의 권한을 부여할 수는 없습니다. HealthOmics 사용하여 로그 그룹을 생성하고 로그 그룹에 쓰기 때문에 세션 정책에 Amazon CloudWatch Logs(logs:CreateLogStream 및 logs:PutLogEvents)에 대한 권한이 포함되어야 합니다.

세션 정책의 최대 길이는 2,048자이며 유효한 JSON 문서여야 합니다. 세션 정책에 대한 자세한 내용은 IAM 사용 설명서의 세션 정책을 참조하세요.

예워크플로 실행에 대한 세션 정책

다음 예제는 출력에 대한 특정 Amazon S3 접두사에만 액세스하도록 실행을 제한하고 CloudWatch Logs 권한이 필요한 세션 정책을 보여줍니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::my-bucket/workflow-outputs/run-123/*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/omics/WorkflowLog:*" } ] }

HealthOmics API를 사용하여 실행을 시작할 때 세션 정책을 지정할 수 있습니다. StartRun API에는 인라인 정책을 JSON 문자열로 제공하는 sessionPolicy 파라미터가 포함되어 있습니다. 배치 실행의 경우에서 배치의 모든 실행에 DefaultRunSetting 적용되는 세션 정책을 지정할 수 있습니다.

예제 CloudFormation 템플릿

다음 샘플 CloudFormation 템플릿은 이름이 접두사로 붙은 Amazon S3 버킷에 액세스omics-하고 워크플로 로그를 업로드할 수 있는 권한을 HealthOmics에 부여하는 서비스 역할을 생성합니다.

예참조 스토어, Amazon S3 및 CloudWatch Logs 권한
Parameters: bucketName: Description: Bucket name Type: String Resources: serviceRole: Type: AWS::IAM::Role Properties: Policies: - PolicyName: read-reference PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - omics:* Resource: !Sub arn:${AWS::Partition}:omics:${AWS::Region}:${AWS::AccountId}:referenceStore/* - PolicyName: read-s3 PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - s3:ListBucket Resource: !Sub arn:${AWS::Partition}:s3:::${bucketName} - Effect: Allow Action: - s3:GetObject - s3:PutObject Resource: !Sub arn:${AWS::Partition}:s3:::${bucketName}/* - PolicyName: upload-logs PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - logs:DescribeLogStreams - logs:CreateLogStream - logs:PutLogEvents Resource: !Sub arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:loggroup:/aws/omics/WorkflowLog:log-stream:* - Effect: Allow Action: - logs:CreateLogGroup Resource: !Sub arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:loggroup:/aws/omics/WorkflowLog:* AssumeRolePolicyDocument: | { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": [ "omics.amazonaws.com" ] } } ] }