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

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

Lake Formation は、AWSServiceRoleForLakeFormationDataAccess という名前のサービスリンクロールを使用します。このロールは、Lake Formation 統合サービス (Amazon Athena など) が登録されたロケーションにアクセスすることを可能にする一連の Amazon Simple Storage Service (Amazon S3) 許可を提供します。データレイクロケーションを登録するときは、そのロケーションに対する必要な 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" ], "Resource": [ "arn:aws:s3:::my-kinesis-test/logs/*" ] }, { "Sid": "LakeFormationDataAccessPermissionsForS3ListBucket", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-kinesis-test" ] } ] }

このサービスリンクロールにロケーションを登録できるようにするには、以下の許可が必要です。

  • iam:CreateServiceLinkedRole

  • iam:PutRolePolicy

通常、データレイク管理者がこれらの許可を持っています。