Lake Formation のサービスリンクロールの使用 - AWS Lake Formation

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

Lake Formation のサービスリンクロールの使用

AWS Lake Formation は、 AWS Identity and Access Management (IAM) サービスにリンクされたロール を使用します。サービスリンクロールは、Lake Formation に直接リンクされた特殊なタイプの IAM ロールです。サービスにリンクされたロールは Lake Formation によって事前定義されており、サービスがユーザーに代わって他の AWS サービスを呼び出すために必要なすべてのアクセス許可が含まれています。

ロールを作成して必要な許可を手動で追加する必要がないため、サービスリンクロールは Lake Formation のセットアップを容易にします。サービスリンクロールの許可は Lake Formation が定義し、別途定義されている場合を除いて、Lake Formation のみがそのロールを引き受けることができます。定義された許可には信頼ポリシーと許可ポリシーが含まれ、その許可ポリシーを他の IAM エンティティにアタッチすることはできません。

このサービスリンクロールは、ロールの引き受けについて以下のサービスを信頼します。

  • lakeformation.amazonaws.com

アカウント A のサービスにリンクされたロールを使用して、アカウント B が所有する Amazon S3 ロケーションを登録する場合、アカウント B の Amazon S3 バケットポリシー (リソースベースのポリシー) は、アカウント A のサービスにリンクされたロールにアクセス許可を付与する必要があります。

注記

サービスコントロールポリシー (SCPs、サービスにリンクされたロールには影響しません。

詳細については、 AWS Organizations ユーザーガイドSCPs)」を参照してください。

Lake Formation のサービスリンクロールの許可

Lake Formation は、AWSServiceRoleForLakeFormationDataAccess という名前のサービスリンクロールを使用します。このロールは、Lake Formation 統合サービス ( など) が登録済みロケーションにアクセスできるようにする一連の Amazon Simple Storage Service (Amazon S3 Amazon Athena) アクセス許可を提供します。データレイクロケーションを登録するときは、そのロケーションに対する必要な Amazon S3 読み取り/書き込み許可を持つロールを指定する必要があります。ユーザーは、必要な Amazon S3 許可を持つロールを作成する代わりに、このサービスリンクロールを使用することができます。

パスを登録するためのロールとしてサービスリンクロールを初めて指定すると、ユーザーに代わってサービスリンクロールと新しい IAM ポリシーが作成されます。Lake Formation がインラインポリシーにそのパスを追加し、ポリシーをサービスリンクロールにアタッチします。サービスリンクロールに後続のパスを登録すると、Lake Formation がそのパスを既存のポリシーに追加します。

データレイク管理者としてサインインしているときに、データレイクロケーションを登録します。次に、IAM コンソールで AWSServiceRoleForLakeFormationDataAccess ロールを検索し、アタッチされたポリシーを確認します。

例えば、s3://my-kinesis-test/logs のロケーションを登録すると、Lake Formation が以下のインラインポリシーを作成し、AWSServiceRoleForLakeFormationDataAccess にアタッチします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccessPermissionsForS3", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::my-kinesis-test/logs/*" ] }, { "Sid": "LakeFormationDataAccessPermissionsForS3ListBucket", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::my-kinesis-test" ] } ] }

Lake Formation のサービスにリンクされたロールの作成

サービスリンクロールを手動で作成する必要はありません。Amazon S3 ロケーションを AWS Management Console、、 AWS CLIまたは AWS API で Lake Formation に登録すると、Lake Formation によってサービスにリンクされたロールが作成されます。

重要

このサービスリンクロールは、このロールでサポートされている機能を使用する別のサービスでアクションが完了した場合にアカウントに表示されます。詳細については、「IAM アカウントに新しいロールが表示される」を参照してください。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は、同じ手順でアカウントにロールを再作成できます。Amazon S3 ロケーションを Lake Formation に登録すると、Lake Formation によってサービスにリンクされたロールが再度作成されます。

IAM コンソールを使用して、Lake Formation ユースケースでサービスにリンクされたロールを作成することもできます。 AWS CLI または AWS API で、サービス名を使用してlakeformation.amazonaws.comサービスにリンクされたロールを作成します。詳細については、「IAM ユーザーガイド」の「サービスにリンクされたロールの作成」を参照してください。このサービスリンクロールを削除しても、同じ方法でロールを再作成できます。

Lake Formation のサービスにリンクされたロールの編集

Lake Formation では、AWSServiceRoleForLakeFormationDataAccessサービスにリンクされたロールを編集することはできません。サービスリンクロールを作成した後は、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用したロールの説明の編集はできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの編集」を参照してください。

Lake Formation のサービスにリンクされたロールの削除

サービスリンクロールが必要な機能またはサービスが不要になった場合には、そのロールを削除することをお勧めします。そうすることで、積極的にモニタリングまたは保守されていない未使用のエンティティを排除できます。ただし、手動で削除する前に、サービスリンクロールのリソースをクリーンアップする必要があります。

注記

リソースを削除しようとしたときに Lake Formation サービスがロールを使用している場合、削除が失敗する可能性があります。失敗した場合は、数分待ってから操作を再試行してください。

Lake Formation が使用する Lake Formation リソースを削除するには
  • サービスにリンクされたロールを使用して Amazon S3 ロケーションを Lake Formation に登録している場合は、サービスにリンクされたロールを削除する前に、ロケーションを登録解除し、カスタムロールを使用して再登録する必要があります。

サービスにリンクされたロールを IAM で手動削除するには

IAM コンソール、、または AWS API を使用して AWS CLI、AWSServiceRoleForLakeFormationDataAccessサービスにリンクされたロールを削除します。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの削除」を参照してください。