在 Lake Formation 中使用服务相关角色 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Lake Formation 中使用服务相关角色

Amazon Lake Formation 使用 Amazon Identity and Access Management (IAM) 服务相关角色。服务相关角色是一种独特类型的 IAM 角色,它与 Lake Formation 直接相关。服务相关角色由 Lake Formation 预定义,包括该服务代表您调用其他 Amazon 服务所需的所有权限。

服务相关角色可让您更轻松地设置 Lake Formation,因为您不必创建角色并手动添加必要的权限。Lake Formation 定义其服务相关角色的权限,除非另有定义,否则只有 Lake Formation 可以代入该角色。定义的权限包括信任策略和权限策略,以及不能附加到任何其他 IAM 实体的权限策略。

此服务相关角色仅信任以下服务来代入该角色:

  • lakeformation.amazonaws.com

当您使用账户 A 中的服务相关角色注册账户 B 拥有的 Amazon S3 营业地点时,账户 B 中的 Amazon S3 存储桶策略(基于资源的策略)必须向账户 A 中的服务相关角色授予访问权限。

注意

服务控制策略 (SCP) 不影响服务相关角色。

有关更多信息,请参阅Amazon Organizations 用户指南中的服务控制策略 (SCP)

Lake Formation 的服务相关角色权限

Lake Formation 使用名为 AWSServiceRoleForLakeFormationDataAccess 的服务相关角色。此角色提供了一组亚马逊简单存储服务 (Amazon S3) 权限,这些权限使 Lake Formation 集成服务( Amazon Athena例如)能够访问注册地点。注册数据湖位置时,您必须提供对该位置具有所需 Amazon S3 读/写权限的角色。您可以使用此服务相关角色,而不是创建具有所需 Amazon S3 权限的角色。

首次将服务相关角色命名为用于注册路径的角色时,将代表您创建服务相关角色和新的 IAM 策略。Lake Formation 将路径添加到内联策略,并将其附加到服务相关角色。当您向服务相关角色注册后续路径时,Lake Formation 会将该路径添加到现有策略中。

以数据湖管理员身份登录后,注册数据湖位置。然后,在 IAM 控制台中,搜索角色 AWSServiceRoleForLakeFormationDataAccess 并查看其附加的策略。

例如,在您注册位置 s3://my-kinesis-test/logs 后,Lake Formation 会创建以下内联策略并将其附加到 AWSServiceRoleForLakeFormationDataAccess

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccessPermissionsForS3", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::my-kinesis-test/logs/*" ] }, { "Sid": "LakeFormationDataAccessPermissionsForS3ListBucket", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::my-kinesis-test" ] } ] }

为 Lake Formation 创建服务相关角色

您无需手动创建服务相关角色。当你在 Amazon Web Services Management Console、或 Amazon API 中向 Lake Formation 注册一个 Amazon S3 地点时,Lake Formation 会为你创建服务相关角色。 Amazon CLI

重要

如果您在其他使用此角色支持的功能的服务中完成某个操作,此服务相关角色可以出现在您的账户中。要了解更多信息,请参阅我的 IAM 账户中的新角色

如果您删除该服务相关角色,然后需要再次创建,您可以使用相同流程在账户中重新创建此角色。当你向 Lake Formation 注册亚马逊 S3 地点时,Lake Formation 会再次为你创建与服务相关的角色。

您还可以使用 IAM 控制台在 La ke Formation 用例中创建服务相关角色。在 Amazon CLI 或 Amazon API 中,使用服务名称创建服务相关角色。lakeformation.amazonaws.com有关更多信息,请参阅《IAM 用户指南》中的创建服务相关角色。如果您删除了此服务相关角色,可以使用同样的过程再次创建角色。

编辑 Lake Formation 的服务相关角色

Lake Formation 不允许你编辑AWSServiceRoleForLakeFormationDataAccess服务相关角色。创建服务相关角色后,您将无法更改角色的名称,因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。有关更多信息,请参阅《IAM 用户指南》中的编辑服务相关角色

删除 Lake Formation 的服务相关角色

如果不再需要使用某个需要服务相关角色的功能或服务,我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是,必须先清除服务相关角色的资源,然后才能手动删除它。

注意

如果您尝试删除资源时 Lake Formation 服务正在使用该角色,则删除可能会失败。如果发生这种情况,请等待几分钟后重试。

删除 Lake Formation 使用的 Lake Formation 资源
  • 如果您使用服务相关角色向 Lake Formation 注册了 Amazon S3 营业地点,则在删除服务相关角色之前,您需要注销该营业地点,然后使用自定义角色对其进行重新注册。

使用 IAM 手动删除服务相关角色

使用 IAM 控制台 Amazon CLI、或 Amazon API 删除AWSServiceRoleForLakeFormationDataAccess服务相关角色。有关更多信息,请参见 IAM 用户指南中的删除服务相关角色