本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
第 1 步:配置资源
您需要设置以下设置Amazon完成本教程的资源:
IAM 用户、角色和策略
Lake Formation 数据湖设置和权限
本节介绍如何设置Amazon资源有两种不同的方式:
使用 Amazon CloudFormation 模板
使用 Amazon 控制台
使用创建资源Amazon CloudFormation模板
完成以下步骤以使用Amazon CloudFormation:
登录到Amazon CloudFormation控制台https://console.aws.amazon.com/cloudformation
作为美国东部(弗吉尼亚北部)区域的 IAM 用户。 选择启动堆栈
. 选择下一步在创建堆栈屏幕。
输入堆栈名称。
适用于dataLake 管理员用户名和DataLake 管理员用户密码中,输入您的数据湖管理员用户的 IAM 用户名和密码。
适用于DataLake 分析师用户名和DataLake Analyst 用户密码,输入您的数据湖分析师用户的 IAM 用户名和密码。
适用于dataLakeBucketName中,输入将创建的新存储桶名称。
适用于DatabaseName保留为默认值。
选择 Next(下一步)
在下一页上,选择下一步.
查看最后一页上的详细信息并选择我承认Amazon CloudFormation可能会创建 IAM 资源。
选择 Create(创建)。
创建堆栈可能需要长达两分钟的时间。
使用创建资源Amazon控制台
使用以下步骤创建资源。Amazon控制台:
首先,您需要设置两个 IAM 角色;Amazon GlueETL 作业,另一个用于 Lake Formation 数据湖位置。要创建 IAM 策略,请完成以下步骤:
-
在 IAM 控制台上 (https://console.aws.amazon.com/iam/
) 中,为 Amazon S3 创建新策略。将以下策略另存为 S3DataLakePolicy
:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::
your-datalake-bucket-name
/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your-datalake-bucket-name
" ] } ] } 创建名为的新 IAM 策略
LFLocationPolicy
使用以下语句:{ "Version": "2012-10-17", "Statement": [ { "Sid": "LFtransactions", "Effect": "Allow", "Action": [ "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:GetTableObjects", "lakeformation:UpdateTableObjects" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:GetTableVersions", "glue:GetPartitions", "glue:GetTable", "glue:GetTables", "glue:UpdateTable" ], "Resource": "*" } ] }
创建名为的新 IAM 策略
LFQuery
使用以下语句:{ "Version": "2012-10-17", "Statement": [ { "Sid": "LFtransactions", "Effect": "Allow", "Action": [ "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:ExtendTransaction", "lakeformation:StartQueryPlanning", "lakeformation:GetTableObjects", "lakeformation:GetQueryState", "lakeformation:GetWorkUnits", "lakeformation:GetWorkUnitResults" ], "Resource": "*" } ] }
-
-
接下来,完成以下步骤为 Lake Formation 数据位置创建 IAM 角色:
创建一个名为的新的 Lake Formation 角色
LFRegisterLocationServiceRole
与 Lake Formation 信任关系:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
附加客户管理的策略(
S3DataLakePolicy
和LFLocationPolicy
) 您在上一步中创建的。此角色用于向 Lake Formation 注册地点,该 Lake Formation 在查询时反过来为 Athena 执行凭证自动售货。
接下来,请按照以下步骤创建 IAM 用户:
创建 IAM 用户被命名
DatalakeAdmin
然后附上以下内容Amazon托管策略:-
AWSLakeFormationDataAdmin
-
AmazonAthenaFullAccess
-
IAMReadOnlyAccess
适用于dataLakeBucketName中,输入将创建的新存储桶名称。
-
附加客户管理的策略
LFQueryPolicy
.创建名为的 IAM 用户
DataAnalyst
这可以使用 Athena 来查询数据。将附加到Amazon管理的策略
AmazonAthenaFullAccess
.附加客户管理的策略
LFQueryPolicy
.
请按照以下步骤配置 Lake Formation:
通过 https://console.aws.amazon.com/lakeformation/
中打开 Lake Formation 控制台。UNDERPermissions (权限),选择Admins和数据库创建者。 在数据湖管理员部分,选择Grant.
适用于IAM 用户和角色选择 IAM 用户DataLake 管理员.
选择 Save(保存)。
在数据库创建部分,选择Grant.
适用于IAM 用户和角色,选择
LFRegisterLocationServiceRole
.Select创建数据库.
选择 Grant(授权)。
UNDER注册并提取,选择数据湖位置.
选择注册位置.
Select数据库.
适用于Amazon S3 路径中,输入存储数据的存储桶的 Amazon S3 位置。这必须是您在中列出的同一存储桶
LFLocationPolicy
. Lake Formation 使用此角色来出售临时 Amazon S3 证书,以查询需要对存储桶及其下所有前缀的读/写访问权限的服务。适用于IAM 角色,选择
LFRegisterLocationServiceRole
.选择注册位置.
UNDERData Catalog,选择设置.
确保两个复选框仅对新数据库使用 IAM 访问控制和仅对新数据库中的新表使用 IAM 访问控制被取消选择。
UNDER数据目录,选择数据库.
选择 Create database(创建数据库)。
对于 Name (名称),请输入
lakeformation_tutorial_amazon_reviews
。选择 Create database(创建数据库)。