本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Lake Formation 中使用服务相关角色
AWS Lake Formation 使用 AWS Identity and Access Management (IAM) 服务相关角色。服务相关角色是一种与 Lake For IAM mation 直接关联的独特角色。服务相关角色由 Lake Formation 预定义,包括该服务代表您调用其他 AWS 服务所需的所有权限。
服务相关角色可让您更轻松地设置 Lake Formation,因为您不必创建角色并手动添加必要的权限。Lake Formation 定义其服务相关角色的权限,除非另有定义,否则只有 Lake Formation 可以代入该角色。定义的权限包括信任策略和权限策略,并且该权限策略不能附加到任何其他IAM实体。
此服务相关角色仅信任以下服务来代入该角色:
-
lakeformation.amazonaws.com
当您使用账户 A 中的服务相关角色注册账户 B 拥有的 Amazon S3 营业地点时,账户 B 中的 Amazon S3 存储桶策略(基于资源的策略)必须向账户 A 中的服务相关角色授予访问权限。
注意
服务控制策略 (SCPs) 不影响服务相关角色。
有关更多信息,请参阅AWS Organizations 用户指南中的服务控制策略 (SCPs)。
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 创建服务相关角色
您无需手动创建服务相关角色。当你在 AWS Management Console、或 Lake Formation 中注册 Amazon S3 地点时 AWS CLI AWS API,Lake Formation 会为你创建服务相关角色。
重要
如果您在其他使用此角色支持的功能的服务中完成某个操作,此服务相关角色可以出现在您的账户中。要了解更多信息,请参阅 “我的IAM账户” 中出现了一个新角色。
如果您删除该服务相关角色,然后需要再次创建,您可以使用相同流程在账户中重新创建此角色。当你向 Lake Formation 注册亚马逊 S3 地点时,Lake Formation 会再次为你创建与服务相关的角色。
您还可以使用IAM控制台在 La ke Formation 用例中创建服务相关角色。在 AWS CLI 或中 AWS 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控制台 AWS CLI、或删除AWSServiceRoleForLakeFormationDataAccess
服务相关角色。 AWS API有关更多信息,请参阅IAM用户指南中的删除服务相关角色。