リソースのアクセス許可 - AWS HealthOmics

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

リソースのアクセス許可

AWS HealthOmics は、ジョブの実行時またはストアの作成時に、ユーザーに代わって他の サービスのリソースを作成してアクセスします。場合によっては、リソースにアクセスしたり、HealthOmics がリソースにアクセスしたりできるように、他の サービスでアクセス許可を設定する必要があります。

Amazon ECR のアクセス許可

HealthOmics サービスがプライベート Amazon ECR リポジトリからコンテナでワークフローを実行する前に、コンテナのリソースポリシーを作成します。このポリシーは、HealthOmics サービスがコンテナを使用するためのアクセス許可を付与します。このリソースポリシーは、ワークフローによって参照される各プライベートリポジトリに追加します。

注記

プライベートリポジトリとワークフローは同じリージョンにある必要があります。

以下のセクションでは、必要なポリシー設定について説明します。

Amazon ECR リポジトリのリソースポリシーを作成する

リソースポリシーを作成して、HealthOmics サービスがリポジトリ内のコンテナを使用してワークフローを実行できるようにします。このポリシーは、HealthOmics サービスプリンシパルが必要な Amazon ECR アクションにアクセスするためのアクセス許可を付与します。

ポリシーを作成するには、次の手順に従います。

  1. Amazon ECR コンソールでプライベートリポジトリページを開き、アクセス権を付与するリポジトリを選択します。

  2. サイドバーのナビゲーションから、アクセス許可を選択します。

  3. JSON の編集 を選択します。

  4. [Add Statement (ステートメントの追加)] を選択します。

  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": "*" } ] }