資源許可 - 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. 選擇儲存

如果您的服務政策具有正確的 RAM 許可,HealthOmics Analytics 會自動接受資料,例如下列範例。

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