Lake Formation のペルソナと IAM 許可のリファレンス - AWS Lake Formation

Lake Formation のペルソナと IAM 許可のリファレンス

この章では、推奨される AWS Lake Formation のペルソナと、それらに推奨される AWS Identity and Access Management (IAM) 許可をリストします。Lake Formation 許可については、「Lake Formation 許可のリファレンス」を参照してください。

AWS Lake Formation のペルソナ

以下の表は、推奨される AWS Lake Formation のペルソナのリストです。

Lake Formation のペルソナ
ペルソナ 説明
IAM 管理者 (スーパーユーザー) (必須) IAM ユーザーとロールを作成できるユーザーです。AdministratorAccess AWS マネージドポリシーを持っています。すべての Lake Formation リソースに対するすべての許可を持っています。データレイク管理者を追加できます。データレイク管理者としても指定されている場合を除き、Lake Formation 許可を付与することはできません。
データレイク管理者 (必須) Amazon S3 ロケーションの登録、Data Catalog へのアクセス、データベースの作成、ワークフローの作成と実行、他のユーザーへの Lake Formation 許可の付与、および AWS CloudTrail ログの表示を実行できるユーザーです。IAM 許可の数は IAM 管理者よりも少ないですが、データレイクを管理するには十分な許可を持っています。他のデータレイク管理者を追加することはできません。
データエンジニア (オプション) データベースの作成、クローラとワークフローの作成と実行、およびクローラとワークフローが作成する Data Catalog テーブルに対する Lake Formation 許可の付与を実行できるユーザーです。すべてのデータエンジニアをデータベース作成者にすることが推奨されます。詳細については、「データベースの作成」を参照してください。
データアナリスト (オプション) Amazon Athena などを使用して、データレイクに対するクエリを実行できるユーザーです。クエリを実行するために十分な許可のみを持っています。
ワークフローロール (必須) ユーザーに代わってワークフローを実行するロールです。このロールは、ブループリントからワークフローを作成するときに指定します。

ペルソナに推奨される許可

以下は、各ペルソナに推奨される許可です。IAM 管理者であるユーザーは、すべてのリソースに対するすべての許可を持っているため、ここのは含まれていません。

データレイク管理者の許可

重要

以下のポリシーでは、<account-id> を有効な AWS アカウント番号に置き換え、<workflow_role> は、「ワークフローロールの許可」で定義されているとおり、ワークフローを実行する許可を持つロールの名前に置き換えてください。

ポリシータイプ ポリシー
AWS マネージドポリシー
  • AWSLakeFormationDataAdmin

  • AWSGlueConsoleFullAccess (オプション)

  • CloudWatchLogsReadOnlyAccess (オプション)

  • AWSLakeFormationCrossAccountManager (オプション)

  • AmazonAthenaFullAccess (オプション)

オプションの AWS マネージドポリシーの詳細については、「データレイク管理者を作成する」を参照してください。

インラインポリシー (Lake Formation サービスリンクロールの作成用)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "lakeformation.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess" } ] }
(オプション) インラインポリシー (ワークフローロールのための PassRole ポリシー)。これは、データレイク管理者がワークフローを作成して実行する場合にのみ必要になります。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<workflow_role>" ] } ] }
(オプション) インラインポリシー (アカウントがクロスアカウント Lake Formation 許可を付与または受けている場合)。このポリシーは、AWS RAM リソース共有招待の承諾または拒否、および組織へのクロスアカウント許可の付与の有効化向けのものです。ram:EnableSharingWithAwsOrganization が必要となるのは、AWS Organizations 管理アカウントのデータレイク管理者のみです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }

データエンジニアの許可

重要

以下のポリシーでは、<account-id> を有効な AWS アカウント番号、<workflow_role> をワークフローロールの名前に置き換えてください。

ポリシータイプ ポリシー
AWS マネージドポリシー AWSGlueConsoleFullAccess
インラインポリシー (ベーシック)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GrantPermissions", "lakeformation:RevokePermissions", "lakeformation:BatchGrantPermissions", "lakeformation:BatchRevokePermissions", "lakeformation:ListPermissions", "lakeformation:AddLFTagsToResource", "lakeformation:RemoveLFTagsFromResource", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags", "lakeformation:GetWorkUnits", "lakeformation:GetWorkUnitResults", "lakeformation:StartQueryPlanning", "lakeformation:GetQueryState", "lakeformation:GetQueryStatistics" ], "Resource": "*" } ] }
インラインポリシー (トランザクション内での操作を含む、管理対象テーブルでの操作用)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:ExtendTransaction", "lakeformation:DescribeTransaction", "lakeformation:ListTransactions", "lakeformation:GetTableObjects", "lakeformation:UpdateTableObjects", "lakeformation:DeleteObjectsOnCancel" ], "Resource": "*" } ] }
インラインポリシー (Lake Formation のタグベースのアクセスコントロール (LF-TBAC) 方式を使用したメタデータアクセスコントロール用)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:AddLFTagsToResource", "lakeformation:RemoveLFTagsFromResource", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
インラインポリシー (ワークフローロールのための PassRole ポリシー)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<workflow_role>" ] } ] }

データアナリストの許可

ポリシータイプ ポリシー
AWS マネージドポリシー AmazonAthenaFullAccess
インラインポリシー (ベーシック)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
(オプション) インラインポリシー (トランザクション内での操作を含む、管理対象テーブルでの操作用)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:ExtendTransaction", "lakeformation:DescribeTransaction", "lakeformation:ListTransactions", "lakeformation:GetTableObjects", "lakeformation:UpdateTableObjects", "lakeformation:DeleteObjectsOnCancel" ], "Resource": "*" } ] }

ワークフローロールの許可

このロールには、ワークフローを実行するために必要な許可があります。これらの許可を持つロールは、ワークフローを作成するときに指定します。

重要

以下のポリシーでは、<region> を有効な AWS リージョン識別子 (us-east-1 など)、<account-id> を有効な AWS アカウント番号、<workflow_role> をワークフローロールの名前、および <your-s3-cloudtrail-bucket> を AWS CloudTrail ログへの Amazon S3 パスに置き換えてください。

ポリシータイプ ポリシー
AWS マネージドポリシー AWSGlueServiceRole
インラインポリシー (データアクセス)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Lakeformation", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GrantPermissions" ], "Resource": "*" } ] }
インラインポリシー (ワークフローロールのための PassRole ポリシー)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<workflow_role>" ] } ] }
インラインポリシー (AWS CloudTrail ログなどのデータレイク外のデータの取り込み用)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject", "s3:ListBucket"], "Resource": ["arn:aws:s3:::<your-s3-cloudtrail-bucket>/*"] } ] }