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 のサービスリンクロールにアクセス許可を付与する必要があります。
注記
サービスリンクロールは、サービスコントロールポリシー (SCP) の影響を受けません。
詳細については、「AWS Organizations ユーザーガイド」の「サービスコントロールポリシー (SCP)」を参照してください。
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", "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 のサービスリンクロールの作成
サービスリンクロールを手動で作成する必要はありません。AWS Management Console、AWS CLI、または AWS API を使用して Amazon S3 ロケーションを 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 CLI、または AWS API を使用して、AWSServiceRoleForLakeFormationDataAccess
サービスリンクロールを削除します。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの削除」を参照してください。