

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

# 在 Lake Formation 中使用服务相关角色
<a name="service-linked-roles"></a>

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

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

此服务相关角色仅信任以下服务来代入该角色：
+ `lakeformation.amazonaws.com`

当您使用账户 A 中的服务相关角色注册账户 B 所拥有的 Amazon S3 位置时，账户 B 中的 Amazon S3 存储桶策略（基于资源的策略）必须向账户 A 中的服务相关角色授予访问权限。

有关使用服务相关角色注册数据位置的信息，请参阅[服务相关角色限制](service-linked-role-limitations.md)。

**注意**  
服务控制策略 (SCPs) 不影响服务相关角色。  
有关更多信息，请参阅*AWS Organizations 用户指南*中的[服务控制策略 (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。

## Lake Formation 的服务相关角色权限
<a name="service-linked-role-permissions"></a>

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

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

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

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

------
#### [ JSON ]

****  

```
{
    "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 创建服务相关角色
<a name="create-slr"></a>

您无需手动创建服务关联角色。当你在 AWS 管理控制台、或 AWS API 中向 Lake Formation 注册一个 Amazon S3 地点时，Lake Formation 会为你创建服务相关角色。 AWS CLI

**重要**  
如果您在其他使用此角色支持的功能的服务中完成某个操作，此服务关联角色可以出现在您的账户中。要了解更多信息，请参阅[我的 IAM 账户中出现新角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。当您向 Lake Formation 注册 Amazon S3 位置时，Lake Formation 会再次为您创建服务相关角色。

您也可以使用 IAM 控制台为 **Lake Formation** 使用案例创建服务相关角色。在 AWS CLI 或 AWS API 中，使用服务名称创建服务相关角色。`lakeformation.amazonaws.com`有关更多信息，请参阅 *IAM 用户指南* 中的[创建服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)。如果您删除了此服务相关角色，可以使用同样的过程再次创建角色。

## 为 Lake Formation 编辑服务相关角色
<a name="edit-slr"></a>

Lake Formation 不允许您编辑 `AWSServiceRoleForLakeFormationDataAccess` 服务相关角色。创建服务关联角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 为 Lake Formation 删除服务相关角色
<a name="delete-slr"></a>

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

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

**删除 Lake Formation 使用的 Lake Formation 资源**
+ 如果您使用服务相关角色向 Lake Formation 注册了 Amazon S3 位置，则在删除服务相关角色之前，需要注销该位置，然后使用自定义角色重新注册。

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

使用 IAM 控制台 AWS CLI、或 AWS API 删除`AWSServiceRoleForLakeFormationDataAccess`服务相关角色。有关更多信息，请参见 *IAM 用户指南*中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。