Lake Formation のトラブルシューティング - AWS Lake Formation

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

Lake Formation のトラブルシューティング

AWS Lake Formation の使用中に問題が発生した場合は、このセクションのトピックを参照してください。

一般的なトラブルシューティング

この情報を使用して、さまざまな Lake Formation 問題の診断と修正に役立ててください。

エラー: Insufficient Lake Formation permissions on <Amazon S3 location> (<Amazon S3 のロケーション> に対する Lake Formation 許可が不十分です)

Data Catalog リソースがポイントする Amazon S3 ロケーションに対するデータロケーション許可がないまま、そのリソースの作成または変更が試行されました。

Data Catalog データベースまたはテーブルが Amazon S3 のロケーションをポイントする場合は、Lake Formation の CREATE_TABLE または ALTER 許可を付与するときに、そのロケーションに対する DATA_LOCATION_ACCESS 許可も付与する必要があります。外部のアカウントまたは組織にこれらの許可を付与している場合は、grant オプションを含める必要があります。

これらの許可が外部アカウントに付与されたら、そのアカウントのデータレイク管理者は、アカウント内のプリンシパル (ユーザーまたはロール) に許可を付与する必要があります。別のアカウントから受け取ったDATA_LOCATION_ACCESSアクセス許可を付与する場合は、所有者アカウントのカタログ ID (AWS アカウント ID) を指定する必要があります。所有者アカウントは、ロケーションを登録したアカウントです。

詳細については、「基盤となるデータのアクセスコントロール」および「データロケーション許可の付与」を参照してください。

エラー:「Insufficient encryption key permissions for Glue API」(Glue API の暗号化キー許可が不十分です)

暗号化されたデータカタログの AWS KMS 暗号化キーに対する AWS Identity and Access Management (IAM) アクセス許可のない Lake Formation アクセス許可を付与しようとしました。

マニフェストを使用する自分のクエリ Amazon Athena または Amazon Redshift クエリが失敗している

Lake Formation は、マニフェストを使用するクエリをサポートしません。

エラー:「Insufficient Lake Formation permission(s): Required create tag on catalog」(Lake Formation 許可が不十分です: カタログに対する必須の create タグ)

ユーザー/ロールは、データレイク管理者である必要があります。

無効なデータレイク管理者を削除するとエラーが発生します

無効なデータレイク管理者 (データレイク管理者として定義された削除済み IAM ロール) をすべて同時に削除する必要があります。無効なデータレイク管理者を個別に削除しようとすると、Lake Formation は無効なプリンシパルエラーをスローします。

クロスアカウントアクセスのトラブルシューティング

この情報を使用して、クロスアカウントアクセス問題の診断と修正に役立ててください。

クロスアカウント Lake Formation 許可を付与しましたが、受領者がリソースを表示できません

  • 受領者アカウントのユーザーはデータレイク管理者ですか。共有時にリソースを表示できるのは、データレイク管理者のみです。

  • 名前付きリソース方式を使用して組織外のアカウントとの共有を行っていますか。その場合、受信者アカウントのデータレイク管理者は AWS Resource Access Manager () でリソース共有の招待を受け入れる必要がありますAWS RAM。

    詳細については、「からのリソース共有の招待の承諾 AWS RAM」を参照してください。

  • AWS Glue でアカウントレベルの (Data Catalog) リソースポリシーを使用していますか。使用しているならば、名前付きリソース方式を使用する場合、 AWS RAM がユーザーに代わってポリシーを共有することを認可する特別なステートメントをポリシーに含める必要があります。

    詳細については、「AWS Glue と Lake Formation の両方を使用したクロスアカウント許可の管理」を参照してください。

  • クロスアカウントアクセスを付与するために必要な AWS Identity and Access Management (IAM) アクセス許可はありますか?

    詳細については、「前提条件」を参照してください。

  • 許可を付与したリソースには、IAMAllowedPrincipals グループに付与された Lake Formation 許可がない必要があります。

  • アカウントレベルポリシーに、リソースに対する deny ステートメントがありますか。

受領者アカウントのプリンシパルは、Data Catalog リソースを表示することはできますが、基盤となるデータにはアクセスできません。

受信者アカウントのプリンシパルには、必要な AWS Identity and Access Management (IAM) アクセス許可が必要です。詳細については、「共有テーブルの基盤となるデータへのアクセス」を参照してください。

エラー: AWS RAM リソース共有の招待を受け入れると、「発信者が承認されなかったため関連付けに失敗しました」

リソースへのアクセス権を別のアカウントに付与した後で、受領側アカウントがリソース共有招待を承諾しようとすると、アクションが失敗します。

$ aws ram get-resource-share-associations --association-type PRINCIPAL --resource-share-arns arn:aws:ram:aws-region:444444444444:resource-share/e1d1f4ba-xxxx-xxxx-xxxx-xxxxxxxx5d8d { "resourceShareAssociations": [ { "resourceShareArn": "arn:aws:ram:aws-region:444444444444:resource-share/e1d1f4ba-xxxx-xxxx-xxxx-xxxxxxxx5d8d ", "resourceShareName": "LakeFormation-MMCC0XQBH3Y", "associatedEntity": "5815803XXXXX", "associationType": "PRINCIPAL", "status": "FAILED", "statusMessage": "Association failed because the caller was not authorized.", "creationTime": "2021-07-12T02:20:10.267000+00:00", "lastUpdatedTime": "2021-07-12T02:20:51.830000+00:00", "external": true } ] }

このエラーは、受領側アカウントがリソース共有招待を承諾するときに AWS Glue によって glue:PutResourcePolicy が呼び出されるために発生します。この問題を解決するには、プロデューサー/付与者アカウントによって使用される、引き受けられたロールによる glue:PutResourcePolicy アクションを許可します。

エラー:「Not authorized to grant permissions for the resource」(リソースの許可を付与する権限がありません)

別のアカウントが所有するデータベースまたはテーブルに対するクロスアカウント許可の付与が試行されました。データベースまたはテーブルがアカウントと共有されている場合、データレイク管理者としてこれらに対する許可を付与できるのは、アカウント内のユーザーのみです。

エラー: AWS 「組織情報を取得するためのアクセスが拒否されました」

アカウントは AWS Organizations 管理アカウントであり、アカウントの組織単位などの組織情報を取得するために必要なアクセス許可がありません。

詳細については、「Required permissions for cross-account grants」を参照してください。

エラー:「Organization <organization-ID> not found」(組織 <organization-ID> が見つかりません)

組織とのリソースの共有が試行されましたが、組織との共有が有効になっていません。組織とのリソース共有を有効にしてください。

詳細については、AWS RAM 「 ユーザーガイド」のAWS 「組織との共有を有効にする」を参照してください。

エラー:「Insufficient Lake Formation permissions: Illegal combination」(Lake Formation 許可が不十分です: 不正な組み合わせ)

リソースの IAMAllowedPrincipals グループに Lake Formation 許可が付与されているときに、ユーザーが Data Catalog リソースを共有しました。ユーザーは、リソースを共有する前に IAMAllowedPrincipals からすべての Lake Formation 許可を取り消す必要があります。

外部アカウントへのリクエストを許可/取り消ししたときに発生する ConcurrentModificationException

ユーザーが LF タグポリシーのプリンシパルに対する許可リクエストを複数同時に許可または取り消すと、Lake Formation は ConcurrentModificationException をスローします。ユーザーはこの例外を捕捉し、失敗した許可/取り消しリクエストを再試行する必要があります。バッチバージョンの GrantPermissions/RevokePermissions API オペレーション (BatchGrantPermissions および BatchRevokePermissions) を使用すると、同時許可/取り消しリクエストの数を減らすことで、この問題はある程度緩和されます。

Amazon EMR を使用して、クロスアカウント経由で共有されたデータにアクセスする際のエラー

Amazon EMR を使用して他のアカウントから共有されているデータにアクセスすると、一部の Spark ライブラリは Glue:GetUserDefinedFunctions API オペレーションの呼び出しを試みます。 AWS RAM 管理アクセス許可のバージョン 1 および 2 はこのアクションをサポートしていないため、次のエラーメッセージが表示されます。

"ERROR: User: arn:aws:sts::012345678901:assumed-role/my-spark-role/i-06ab8c2b59299508a is not authorized to perform: glue:GetUserDefinedFunctions on resource: arn:exampleCatalogResource because no resource-based policy allows the glue:GetUserDefinedFunctions action"

このエラーを解決するには、リソース共有を作成したデータレイク管理者が、リソース共有にアタッチされた AWS RAM マネージドアクセス許可を更新する必要があります。 AWS RAM マネージドアクセス許可のバージョン 3 では、プリンシパルが glue:GetUserDefinedFunctions アクションを実行できます。

新しいリソース共有を作成すると、Lake Formation はデフォルトで AWS RAM マネージドアクセス許可の最新バージョンを適用します。ユーザーによるアクションは必要ありません。既存のリソース共有のクロスアカウントデータアクセスを有効にするには、 AWS RAM マネージドアクセス許可をバージョン 3 に更新する必要があります。

で共有されているリソースに割り当てられた AWS RAM アクセス許可を表示できます AWS RAM。バージョン 3 には次のアクセス許可が含まれています。

Databases AWSRAMPermissionGlueDatabaseReadWriteForCatalog AWSRAMPermissionGlueDatabaseReadWrite Tables AWSRAMPermissionGlueTableReadWriteForCatalog AWSRAMPermissionGlueTableReadWriteForDatabase AllTables AWSRAMPermissionGlueAllTablesReadWriteForCatalog AWSRAMPermissionGlueAllTablesReadWriteForDatabase
既存のリソース共有の AWS RAM マネージドアクセス許可バージョンを更新するには

ユーザー (データレイク管理者) は、AWS RAM 「 ユーザーガイド」の手順に従ってAWS RAM 管理アクセス許可を新しいバージョンに更新するか、リソースタイプの既存のアクセス許可をすべて取り消して再付与することができます。アクセス許可を取り消すと、 は AWS RAM リソースタイプに関連付けられたリソース共有 AWS RAM を削除します。アクセス許可を再付与すると、 AWS RAM は AWS RAM マネージドアクセス許可の最新バージョンをアタッチした新しいリソース共有を作成します。

ブループリントとワークフローのトラブルシューティング

この情報を使用して、ブループリントとワークフローの問題の診断と修正に役立ててください。

ブループリントが「User: <user-ARN> is not authorized to perform: iam:PassRole on resource: <role-ARN>」(ユーザー: <user-ARN> にはリソース: <role-ARN> で iam:PassRole を実行する許可がありません) エラーで失敗しました

選択されたロールを渡すために十分な許可を持たないユーザーによって、ブループリントの作成が試行されました。

ロールを渡すことができるようにユーザーの IAM ポリシーを更新するか、必要な PassRole 許可を持つ異なるロールを選択することをユーザーに依頼してください。

詳細については、「Lake Formation のペルソナと IAM 許可のリファレンス」を参照してください。

ワークフローが「User: <user-ARN> is not authorized to perform: iam:PassRole on resource: <role-ARN>」(ユーザー: <user-ARN> にはリソース: <role-ARN> で iam:PassRole を実行する許可がありません) エラーで失敗しました

ワークフローに指定したロールに、ロールがそれ自体を渡すことを許可するインラインポリシーがありませんでした。

詳細については、「(オプション) ワークフロー用の IAM ロールを作成する」を参照してください。

ワークフローのクローラが「Resource does not exist or requester is not authorized to access requested permissions」(リソースが存在しないかリクエストされた認可にアクセスする権限がリクエスト元にありません) エラーで失敗しました

原因の 1 つとして、渡されたロールがターゲットデータベースにテーブルを作成するために十分な許可を持っていなかったことが考えられます。データベースに対する CREATE_TABLE 許可をロールに付与してください。

ワークフローのクローラが「An error occurred (AccessDeniedException) when calling the CreateTable operation...」(CreateTable 操作の呼び出し時にエラーが発生しました (AccessDeniedException)) で失敗しました

原因の 1 つとして、ワークフローロールがターゲットストレージロケーションに対するデータロケーション許可を持っていなかったことが考えられます。データロケーション許可をロールに付与してください。

詳細については、「DATA_LOCATION_ACCESS」を参照してください。