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) を指定する必要があります。所有者アカウントは、ロケーションを登録したアカウントです。

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

エラー:「Glue の暗号化キーのアクセス許可が不十分API」

暗号化された Data Catalog の 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? はいの場合、名前付きリソースメソッドを使用する場合は、 がユーザーに代わってポリシーを共有することを許可する特別なステートメント 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 } ] }

glue:PutResourcePolicy が によって呼び出されるため、エラーが発生します。AWS Glue 受信アカウントがリソース共有の招待を受け入れる場合。この問題を解決するには、プロデューサー/付与者アカウントによって使用される、引き受けられたロールによる 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:GetUserDefinedFunctionsAPIオペレーションの呼び出しを試みます。 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>」で設計図が失敗しました

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

ロールを渡すことができるようにユーザーのIAMポリシーを更新するか、必要なパスロールアクセス許可を持つ別のロールを選択するようにユーザーに依頼します。

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

「User: <user-ARN> is not authorized to perform: iam:PassRole on resource: <role-ARN>」でワークフローが失敗しました

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

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

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

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

ワークフローのクローラーが CreateTable 「オペレーションを呼び出すときにエラー (AccessDeniedException) が発生しました」で失敗しました。

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

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