本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
第 1 步:配置资源
您需要设置以下设置Amazon完成本教程的资源:
IAM 用户、角色和策略
Lake Formation 数据湖设置和权限
此部分将向您介绍如何设置Amazon资源有两种不同的方式:
使用 Amazon CloudFormation 模板
使用 Amazon 控制台
使用创建资源Amazon CloudFormation模板
完成以下步骤以使用Amazon CloudFormation模板:模板:模板
登录到Amazon CloudFormation控制台位于控制台https://console.aws.amazon.com/cloudformation
作为美国东部(弗吉尼亚北部)区域的 IAM 用户。 选择启动堆栈
. 选择下一步在创建堆栈屏幕。
输入堆栈名称。
适用于DatalakeAdminUserName和DatalakeAdminUserPassword中,输入数据湖管理员用户的 IAM 用户名和密码。
适用于DatalakeAnalystUserName和DatalakeAnalystUserPassword中,输入数据湖分析师用户的 IAM 用户名和密码。
适用于DataLakeBucketName中,输入要创建的新存储桶名称。
适用于DatabaseName,将保留为默认值。
选择 Next(下一步)。
在下一页上,选择下一步.
查看最后一页的详细信息并选择我承认这一点Amazon CloudFormation可能会创建 IAM 资源。
选择 Create(创建)。
堆栈创建可能需要长达两分钟。
使用创建资源Amazon控制台
完成以下步骤以使用Amazon控制台:
首先,您需要设置两个 IAM 角色;Amazon GlueETL 作业,另一个用于Lake Formation 数据湖位置。要创建 IAM 策略,请完成以下步骤:
-
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 注册地点,后者反过来会在查询时为 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 用户DatalakeAdmin.
选择 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(创建数据库)。