

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

# Amazon EMR での Lake Formation の使用に関する考慮事項
<a name="emr-lf-limitations-cont"></a>

Lake Formation での Amazon EMR は、[利用可能なすべてのリージョン](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-region.html)で利用できます。

## バージョン 7.9 以前の Amazon EMR での Lake Formation の使用に関する考慮事項
<a name="emr-lf-limitations-early"></a>

EMR 7.9 以前のバージョン AWS Lake Formation で を使用する場合は、次の点を考慮してください。
+ Amazon EMR リリース 6.15 以降のクラスターでは、行、列、セルレベルでの[きめ細かなアクセス制御](emr-lf-enable.md#emr-lf-fgac-perms)が可能です。
+ テーブルにアクセスできるユーザーは、そのテーブルのすべてのプロパティにアクセスできます。Lake Formation ベースのアクセスコントロールをテーブルで使用している場合は、テーブルを確認して、プロパティに機密データや情報が含まれていないことを確認してください。
+ Lake Formation を使用する Amazon EMR クラスターでは、Spark がテーブル統計を収集する場合の Spark の HDFS へのフォールバックをサポートしていません。これは通常、クエリのパフォーマンスを最適化するのに役立ちます。
+ Lake Formation に基づくアクセスコントロールをサポートする、非管理対象の Apache Spark テーブルによる操作には、`INSERT INTO` や `INSERT OVERWRITE` などがあります。
+ Lake Formation に基づくアクセスコントロールをサポートする、Apache Spark と Apache Hive での操作には、`SELECT`、`DESCRIBE`、`SHOW DATABASE`、`SHOW TABLE`、`SHOW COLUMN`、`SHOW PARTITION` などがあります。
+ Amazon EMR は、以下の Lake Formation ベースの操作用アクセスコントロールをサポートしていません。
  + 管理対象テーブルへの書き込み
  + Amazon EMR は `CREATE TABLE` をサポートしていません。Amazon EMR 6.10.0 以降は、`ALTER TABLE`をサポートしています。
  + `INSERT` コマンド以外の DML ステートメント。
+ Lake Formation ベースのアクセスコントロールを使用する場合と使用しない場合では、同じクエリでパフォーマンスに差が生じます。
+ Amazon EMR は Lake Formation for Spark ジョブでのみ使用できます。
+ 信頼された ID の伝播は、 Glue Data Catalog のマルチカタログ階層ではサポートされていません。詳細については、「 [AWS Glue Data Catalog でのマルチカタログ階層の使用](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-multi-catalog.html)」を参照してください。

## バージョン 7.10 以降の Amazon EMR での Lake Formation の使用に関する考慮事項
<a name="emr-lf-limitations"></a>

EMR 7.10 以降のバージョン AWS Lake Formation で で Amazon EMR を使用する場合は、次の点を考慮してください。
+ Amazon EMR は、Apache Hive、Apache Iceberg、Apache Delta および Apache Hudi テーブルに対してのみ Lake Formation を介したきめ細かなアクセスコントロールをサポートします。Apache Hive 形式には、Parquet、ORC、および xSV CSV が含まれます。
+ Lake Formation が有効なアプリケーションの場合、Spark ログはシステムスペースログとユーザースペースログの 2 つのグループで Amazon S3 に書き込まれます。システムスペースログには、完全なテーブルスキーマなどの機密情報が含まれている場合があります。このデータを保護するために、Amazon EMR はシステムスペースログをユーザースペースログとは別の場所に保存します。アカウント管理者は、システムスペースログへのアクセスをユーザーに許可しないことを強くお勧めします。
+ Lake Formation にテーブルの場所を登録する場合、データアクセスは Amazon EMR ジョブランタイムロールではなく、登録に使用されるロールのアクセス許可によってのみ制御されます。登録ロールの設定が間違っている場合、テーブルにアクセスしようとするジョブは失敗します。
+ Lake Formation ジョブの `DynamicResourceAllocation` をオフにすることはできません。
+ Lake Formation は Spark ジョブでのみ使用できます。
+ Lake Formation での Amazon EMR は、ジョブ全体で 1 つの Spark セッションのみをサポートします。
+ Lake Formation での Amazon EMR は、リソースリンクを介して共有されるクロスアカウントテーブルクエリのみをサポートします。
+ 次のサポートはありません。
  + 耐障害性のある分散データセット (RDD)
  + Spark ストリーミング
  + Lake Formation に付与されたアクセス許可による書き込み
  + ネストされた列のアクセスコントロール
+ Amazon EMR は、以下を含むシステムドライバーの完全な分離を損なわせる可能性のある機能をブロックします。
  + UDT、HiveUDF およびカスタムクラスを含むユーザー定義関数
  + カスタムデータソース
  + Spark 拡張機能、コネクタ、メタストア用の追加の jar の提供
  + `ANALYZE TABLE` コマンド
+ アクセスコントロールを適用するために、`EXPLAIN PLAN` および `DESCRIBE TABLE` などの DDL オペレーションは、限定された情報を公開しません。
+ Amazon EMR は、Lake Formation 対応アプリケーションのシステムドライバー Spark ログへのアクセスを制限します。システムドライバーは昇格アクセス許可を使用して実行されるため、システムドライバーが生成するイベントとログには機密情報が含まれる可能性があります。許可されていないユーザーまたはコードがこの機密データにアクセスできないように、Amazon EMR はシステムドライバーログへのアクセスを無効にしました。

  システムプロファイルログは常にマネージドストレージに保持されます。これは無効にできない必須の設定です。これらのログは、カスタマーマネージド KMS キーまたは AWS マネージド KMS キーを使用して安全に保存され、暗号化されます。

  Amazon EMR アプリケーションが Amazon S3 の VPC エンドポイントを持つプライベートサブネットにあり、アクセスを制御するエンドポイントポリシーをアタッチしている場合、ジョブが AWS Managed Amazon S3 にログデータを送信する前に、VPC ポリシーの [Managed Storage](logging.html#jobs-log-storage-managed-storage) に詳述されているアクセス許可を S3 ゲートウェイエンドポイントに含める必要があります。リクエストのトラブルシューティングについては、 AWS サポートにお問い合わせください。
+ テーブルの場所を Lake Formation に登録した場合、データアクセスパスは、 Amazon EMR ジョブのランタイムロールの IAM アクセス許可に関係なく、Lake Formation に保存された認証情報を経由します。テーブルの場所に登録されたロールを誤って設定すると、テーブルの場所に対して S3 IAM アクセス許可を持つロールを使用して送信されたジョブは失敗します。
+ Lake Formation テーブルへの書き込みでは、Lake Formation に付与されたアクセス許可ではなく、IAM アクセス許可が使用されます。ジョブランタイムロールに必要な S3 アクセス許可がある場合は、それを使用して書き込みオペレーションを実行できます。

Apache Iceberg を使用する場合の考慮事項と制限事項を次に示します。
+ Apache Iceberg はセッションカタログでのみ使用でき、任意の名前のカタログでは使用できません。
+ Lake Formation に登録されている Iceberg テーブルは、メタデータテーブル `history`、`metadata_log_entries`、`snapshots`、`files`、`manifests`、および `refs` のみをサポートします。Amazon EMR は `partitions`、`path`、`summaries` などの機密データを持つ可能性のある列を非表示にします。この制限は、Lake Formation に登録されていない Iceberg テーブルには適用されません。
+ Lake Formation に登録していないテーブルは、すべての Iceberg ストアドプロシージャをサポートしています。`register_table` プロシージャと `migrate` プロシージャは、どのテーブルでもサポートされていません。
+ V1 の代わりに Iceberg DataFrameWriterV2 を使用することをお勧めします。

## バージョン 7.12 以降の Lake Formation を使用する Amazon EMR に関する考慮事項
<a name="emr-lf-limit-712"></a>

### General
<a name="emr-lf-limits-g"></a>

Amazon EMR で Lake Formation を使用する場合は、次の制限事項を確認してください。
+ Lake Formation ジョブの `DynamicResourceAllocation` をオフにすることはできません。
+ Lake Formation は Spark ジョブでのみ使用できます。
+ Lake Formation での Amazon EMR は、ジョブ全体で 1 つの Spark セッションのみをサポートします。
+ Lake Formation での Amazon EMR は、リソースリンクを介して共有されるクロスアカウントテーブルクエリのみをサポートします。
+ 次のサポートはありません。
  + 耐障害性のある分散データセット (RDD)
  + Spark ストリーミング
  + ネストされた列のアクセスコントロール
+ Amazon EMR は、以下を含むシステムドライバーの完全な分離を損なわせる可能性のある機能をブロックします。
  + UDT、HiveUDF およびカスタムクラスを含むユーザー定義関数
  + カスタムデータソース
  + Spark 拡張機能、コネクタ、メタストア用の追加の jar の提供
  + `ANALYZE TABLE` コマンド
+ Amazon EMR アプリケーションが Amazon S3 の VPC エンドポイントを持つプライベートサブネットにあり、アクセスを制御するエンドポイントポリシーをアタッチしている場合、ジョブが AWS Managed Amazon S3 にログデータを送信する前に、VPC ポリシーの [Managed Storage](logging.html#jobs-log-storage-managed-storage) に詳述されているアクセス許可を S3 ゲートウェイエンドポイントに含める必要があります。リクエストのトラブルシューティングについては、 AWS サポートにお問い合わせください。
+ Amazon EMR 7.9.0 以降、Spark FGAC は s3a:// スキームで使用すると S3AFileSystem をサポートします。
+ Amazon EMR 7.11 は、CTAS を使用したマネージドテーブルの作成をサポートしています。
+ Amazon EMR 7.12 は、CTAS を使用したマネージドテーブルと外部テーブルの作成をサポートしています。

## アクセス許可
<a name="emr-lf-permissions"></a>
+ アクセスコントロールを適用するために、EXPLAIN PLAN および DESCRIBE TABLE などの DDL オペレーションでは、制限された情報は公開されません。
+ Lake Formation にテーブルの場所を登録すると、データアクセスは EMR Serverless ジョブランタイムロールの IAM アクセス許可の代わりに Lake Formation の保存された認証情報を使用します。ランタイムロールにその場所に対する S3 IAM アクセス許可がある場合でも、テーブルの場所の登録済みロールが正しく設定されていない場合、ジョブは失敗します。
+ Amazon EMR 7.12 以降では、DataFrameWriter (V2) と Lake Formation 認証情報を追加モードで使用して、既存の Hive テーブルと Iceberg テーブルに書き込むことができます。上書きオペレーションの場合、または新しいテーブルを作成する場合、EMR はランタイムロールの認証情報を使用してテーブルデータを変更します。
+ ビューまたはキャッシュされたテーブルをソースデータとして使用する場合は、次の制限が適用されます (これらの制限は Glue Data Catalog AWS ビューには適用されません）。
  + MERGE、DELETE、および UPDATE オペレーションの場合
    + サポートされている: ビューとキャッシュされたテーブルをソーステーブルとして使用します。
    + サポート対象外: 割り当て句と条件句でビューとキャッシュされたテーブルを使用する。
  + CREATE OR REPLACE および REPLACE TABLE AS SELECT オペレーションの場合:
    + サポート対象外: ビューとキャッシュされたテーブルをソーステーブルとして使用する。
+ ソースデータに UDFsを持つ Delta Lake テーブルは、削除ベクトルが有効になっている場合にのみ MERGE、DELETE、UPDATE オペレーションをサポートします。

## ログとデバッグ
<a name="emr-lf-logs-debugging"></a>
+ Amazon EMR は、Lake Formation 対応アプリケーションのシステムドライバー Spark ログへのアクセスを制限します。システムドライバーは昇格アクセス許可を使用して実行されるため、システムドライバーが生成するイベントとログには機密情報が含まれる可能性があります。許可されていないユーザーまたはコードがこの機密データにアクセスできないように、Amazon EMR はシステムドライバーログへのアクセスを無効にしました。

  システムプロファイルログは常にマネージドストレージに保持されます。これは無効にできない必須の設定です。これらのログは、カスタマーマネージド KMS キーまたは AWS マネージド KMS キーを使用して安全に保存され、暗号化されます。

## Iceberg
<a name="emr-lf-iceberg-considerations"></a>

Apache Iceberg を使用するときは、次の考慮事項を確認してください。
+ Apache Iceberg はセッションカタログでのみ使用でき、任意の名前のカタログでは使用できません。
+ Lake Formation に登録されている Iceberg テーブルは、メタデータテーブル `history`、`metadata_log_entries`、`snapshots`、`files`、`manifests`、および `refs` のみをサポートします。Amazon EMR は `partitions`、`path`、`summaries` などの機密データを持つ可能性のある列を非表示にします。この制限は、Lake Formation に登録されていない Iceberg テーブルには適用されません。
+ Lake Formation に登録されていないテーブルは、すべての Iceberg ストアドプロシージャをサポートします。`register_table` プロシージャと `migrate` プロシージャは、どのテーブルでもサポートされていません。
+ V1 の代わりに Iceberg DataFrameWriterV2 を使用することを提案します。