

# Lake Formation と Athena ユーザーアクセス許可を管理する
<a name="lf-athena-user-permissions"></a>

Lake Formation は、Lake Formation に登録されている Amazon S3 データストアまたはフェデレ―ティッドカタログをクエリするための認証情報を供給します。以前に IAM ポリシーを使用してカタログまたは Amazon S3 にあるデータの場所の読み込みを許可または拒否した場合は、その代わりに Lake Formation アクセス許可を使用できます。ただし、他の IAM 許可は引き続き必要です。

IAM ポリシーを使用するときは、常に IAM のベストプラクティスに従うようにしてください。詳細については、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)の「IAM でのセキュリティベストプラクティス」を参照してください。

以下のセクションでは、Lake Formation に登録されたデータのクエリに Athena を使用するうえで必要な許可を要約しています。詳細については、「AWS Lake Formation デベロッパーガイド」の「[AWS Lake Formation でのセキュリティ](https://docs.aws.amazon.com/lake-formation/latest/dg/security.html)」を参照してください。

**Topics**
+ [Lake Formation と Athena に対するアイデンティティベースの許可](#lf-athena-user-permissions-identity-based)
+ [Athena のクエリ結果の場所に対する Simple Storage Service (Amazon S3) の許可](#lf-athena-user-permissions-query-results-locations)
+ [履歴をクエリする Athena ワークグループのメンバーシップ](#lf-athena-user-permissions-workgroup-memberships-query-history)
+ [データに対する Lake Formation 許可](#lf-athena-user-permissions-data)
+ [Simple Storage Service (Amazon S3) の場所に書き込むための IAM 許可](#lf-athena-user-permissions-s3-write)
+ [暗号化されたデータ、メタデータ、および Athena のクエリ結果に対する許可](#lf-athena-user-permissions-encrypted)
+ [外部アカウントの Amazon S3 バケットに対するリソースベースの許可 (オプション)](#lf-athena-user-permissions-s3-cross-account)

## Lake Formation と Athena に対するアイデンティティベースの許可
<a name="lf-athena-user-permissions-identity-based"></a>

Lake Formation に登録されたデータのクエリに Athena を使用するユーザーには、`lakeformation:GetDataAccess` アクションを許可する IAM 許可ポリシーが必要です。[AWS 管理ポリシー: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy)では、このアクションが許可されます。インラインポリシーを使用する場合は、このアクションを許可するように許可ポリシーを更新してください。

Lake Formation では、*データレイク管理者*が、データベースやテーブルなどのメタデータオブジェクトの作成、他のユーザーへの Lake Formation アクセス許可の付与、および新しい Amazon S3 の場所またはデータカタログの登録を行うアクセス許可を持っています。新しい場所を登録するには、Lake Formation のためのサービスリンクロールに対する許可が必要です。詳細については、「AWS Lake Formation デベロッパーガイド」の「[データレイク管理者の作成](https://docs.aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html#create-data-lake-admin)」および「[Lake Formation のサービスにリンクしたロールのアクセス許可](https://docs.aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html#service-linked-role-permissions)」を参照してください。

Lake Formation ユーザーは、データレイク管理者によって付与された Lake Formation アクセス許可に基づいて、データベース、テーブル、テーブル列、および基盤となる Amazon S3 データストアまたはカタログのクエリに Athena を使用できます。ユーザーは、データベースやテーブルを作成したり、Lake Formation に新しい Amazon S3 の場所を登録したりすることはできません。詳細については、「AWS Lake Formation デベロッパーガイド」の「[データレイクユーザーの作成](https://docs.aws.amazon.com/lake-formation/latest/dg/cloudtrail-tut-create-lf-user.html)」を参照してください。

Athena では、アイデンティティベースのアクセス許可ポリシー (Athena ワークグループ用を含む) が、引き続き Amazon Web Services アカウントユーザーによる Athena アクションへのアクセスを制御します。さらに、Athena ドライバーで利用できる SAML ベースの認証を通じて、フェデレーションアクセスが提供される場合もあります。詳細については、「[ワークグループを使用してクエリのアクセスとコストを制御する](workgroups-manage-queries-control-costs.md)」、「[IAM ポリシーを使用してワークグループのアクセスを制御する](workgroups-iam-policy.md)」、および「[Athena API へのフェデレーションアクセスを有効にする](access-federation-saml.md)」を参照してください。

詳細については、「AWS Lake Formation デベロッパーガイド」の「[Lake Formation へのアクセス許可の付与](https://docs.aws.amazon.com/lake-formation/latest/dg/lake-formation-permissions.html)」を参照してください。

## Athena のクエリ結果の場所に対する Simple Storage Service (Amazon S3) の許可
<a name="lf-athena-user-permissions-query-results-locations"></a>

Amazon S3 にある Athena のクエリ結果の場所を Lake Formation に登録することはできません。Lake Formation 許可は、これらの場所へのアクセスを制限しません。アクセスを制限しない限り、Athena ユーザーはデータに対する Lake Formation の許可がなくてもクエリ結果ファイルとメタデータにアクセスできます。この問題を回避するには、ワークグループを使用してクエリ結果の場所を指定し、ワークグループのメンバーシップを Lake Formation の許可と合致させることが推奨されます。その後、IAM 許可ポリシーを使用して、クエリ結果の場所へのアクセスを制限できます。クエリ結果の詳細については、「[クエリ結果と最近のクエリを操作する](querying.md)」を参照してください。

## 履歴をクエリする Athena ワークグループのメンバーシップ
<a name="lf-athena-user-permissions-workgroup-memberships-query-history"></a>

Athena クエリ履歴は、保存されたクエリと完全なクエリ文字列のリストを公開します。ワークグループを使用してクエリ履歴へのアクセスを分離しない限り、Lake Formation のデータをクエリする権限がない Athena ユーザーが、列名や選択条件などを含めた、そのデータに対して実行されるクエリ文字列を表示することができます。ワークグループを使用してクエリ履歴を分離し、Athena ワークグループのメンバーシップを Lake Formation 許可に合致させてアクセスを制限することが推奨されます。詳細については、「[ワークグループを使用してクエリのアクセスとコストを制御する](workgroups-manage-queries-control-costs.md)」を参照してください。

## データに対する Lake Formation 許可
<a name="lf-athena-user-permissions-data"></a>

Athena ユーザーには、Lake Formation を使用するための基本的な許可に加えて、クエリするリソースにアクセスするための Lake Formation 許可が必要です。これらの許可は、Lake Formation 管理者によって付与および管理されます。詳細については、「AWS Lake Formation デベロッパーガイド」の「[メタデータとデータに対するセキュリティとアクセスコントロール](https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html#security-data-access-permissions)」を参照してください。

## Simple Storage Service (Amazon S3) の場所に書き込むための IAM 許可
<a name="lf-athena-user-permissions-s3-write"></a>

Amazon S3 に対する Lake Formation 許可には、Amazon S3 に書き込む機能が含まれていません。Create Table As Statements (CTAS) には、テーブルの Amazon S3 の場所への書き込みアクセス権が必要です。Lake Formation に登録されたデータに対して CTAS クエリを実行するには、Athena ユーザーに、データの場所を読み込むための適切な Lake Formation 許可に加えて、テーブルの Amazon S3 の場所に書き込むための IAM 許可が必要です。詳細については、「[クエリ結果からテーブルを作成する (CTAS)](ctas.md)」を参照してください。

## 暗号化されたデータ、メタデータ、および Athena のクエリ結果に対する許可
<a name="lf-athena-user-permissions-encrypted"></a>

Amazon S3 にある基盤となるソースデータと、Lake Formation に登録されたカタログ内のメタデータは暗号化できます。Lake Formation に登録されたデータをクエリするために Athena を使用しているときに、Athena がクエリ結果の暗号化を処理する方法に変更はありません。詳細については、「[Amazon S3 に保存された Athena クエリ結果を暗号化する](encrypting-query-results-stored-in-s3.md)」を参照してください。
+ **ソースデータの暗号化** — Amazon S3 データの場所にあるソースデータの暗号化がサポートされています。Lake Formation に登録されている暗号化された Amazon S3 の場所をクエリする Athena ユーザーには、データを暗号化および復号化するための許可が必要です。要件の詳細については、「[サポートされる Amazon S3 の暗号化オプション](encryption.md#encryption-options-S3-and-Athena)」および「[Amazon S3 の暗号化されたデータに対する許可](encryption.md#permissions-for-encrypting-and-decrypting-data)」を参照してください。
+ **メタデータの暗号化** – AWS Glue Data Catalog でのメタデータの暗号化がサポートされています。Athena を使用するプリンシパルの場合、アイデンティティベースのポリシーで、メタデータを暗号化するために使用されるキーの `"kms:GenerateDataKey"`、`"kms:Decrypt"`、および `"kms:Encrypt"` アクションが許可されている必要があります。詳細については、「AWS Glue デベロッパーガイド」の「[Data Catalog の暗号化](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html)」と、「[AWS Glue Data Catalog で Athena から暗号化されたメタデータへのアクセスを構成する](access-encrypted-data-glue-data-catalog.md)」を参照してください。

## 外部アカウントの Amazon S3 バケットに対するリソースベースの許可 (オプション)
<a name="lf-athena-user-permissions-s3-cross-account"></a>

別のアカウントにある Amazon S3 のデータの場所をクエリするには、リソースベースの IAM ポリシー (バケットポリシー) がその場所へのアクセスを許可する必要があります。詳細については、「[Athena で Amazon S3 バケットへのクロスアカウント アクセスを構成する](cross-account-permissions.md)」を参照してください。

別のアカウントにあるカタログへのアクセスについては、「[オプション A: Athena でデータカタログへのクロスアカウントアクセスを設定する](lf-athena-limitations-cross-account.md#lf-athena-limitations-cross-account-glue)」を参照してください。