

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

# 授予或撤销 Lake Formation 权限所需的 IAM 权限
<a name="required-permissions-for-grant"></a>

所有委托人，包括数据湖管理员，都需要以下 AWS Identity and Access Management (IAM) 权限才能使用 Lake Formation API 或以下方式授予或撤销 AWS Lake Formation 数据目录权限或数据位置权限： AWS CLI
+ `lakeformation:GrantPermissions`
+ `lakeformation:BatchGrantPermissions`
+ `lakeformation:RevokePermissions`
+ `lakeformation:BatchRevokePermissions`
+ `glue:GetTable`、`glue:GetDatabase` 或 `glue:GetCatalog`，用于使用命名资源方法授予权限的表、数据库或目录。

**注意**  
数据湖管理员具有隐式 Lake Formation 权限，可以授予和撤销 Lake Formation 权限。但是他们仍然需要对 Lake Formation 授予和撤销 API 操作的 IAM 权限。  
具有`AWSLakeFormationDataAdmin` AWS 托管策略的 IAM 角色无法添加新的数据湖管理员，因为此策略包含对 Lake Formation API 操作的明确拒绝`PutDataLakeSetting`。

对于非数据湖管理员且想要使用 Lake Formation 控制台授予或撤销权限的主体，建议使用以下 IAM 策略。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lakeformation:ListPermissions",
                "lakeformation:GrantPermissions",
                "lakeformation:BatchGrantPermissions",
                "lakeformation:RevokePermissions",
                "lakeformation:BatchRevokePermissions",
                "glue:GetCatalogs",
                "glue:GetDatabases",
                "glue:SearchTables",
                "glue:GetTables",
                "glue:GetCatalog",
                "glue:GetDatabase",
                "glue:GetTable",
                "iam:ListUsers",
                "iam:ListRoles",
                "sso-directory:DescribeUser",
                "sso-directory:DescribeGroup",
                "sso:DescribeInstance"
            ],
            "Resource": "*"
        }
    ]
}
```

------

此策略中的所有`glue:`和`iam:`权限都可在 AWS 托管策略中使用`AWSGlueConsoleFullAccess`。

要使用 Lake Formation 基于标签的访问控制 (LF-TBAC) 授予权限，主体需要额外的 IAM 权限。有关更多信息，请参阅[Lake Formation 基于标签的访问控制最佳实践和注意事项](lf-tag-considerations.md)和[Lake Formation 角色和 IAM 权限参考](permissions-reference.md)。

**跨账户权限**  
想要使用指定资源方法授予跨账户 Lake Formation 权限的用户还必须拥有`AWSLakeFormationCrossAccountManager` AWS 托管策略中的权限。

数据湖管理员需要相同的权限才能授予跨账户权限，还需要有 AWS Resource Access Manager (AWS RAM) 权限才能允许向组织授予权限。有关更多信息，请参阅 [数据湖管理员权限](permissions-reference.md#persona-dl-admin)。

**管理用户**  
具有管理权限（例如`AdministratorAccess` AWS 托管策略）的委托人有权授予 Lake Formation 权限和创建数据湖管理员。要拒绝用户或角色访问 Lake Formation 管理员操作，请在其策略中附加或添加管理员 API 操作的 `Deny` 语句。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lakeformation:GetDataLakeSettings",
                "lakeformation:PutDataLakeSettings"
            ],
            "Effect": "Deny",
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

**重要**  
要防止用户使用提取、转换和加载 (ETL) 脚本将自己添加为管理员，请确保拒绝所有非管理员用户和角色访问这些 API 操作。`AWSLakeFormationDataAdmin` AWS 托管策略包含对 Lake Formation API 操作的明确拒绝`PutDataLakeSetting`，可防止用户添加新的数据湖管理员。