

# 爬网程序使用 Lake Formation 权限时出现爬网程序错误
<a name="error-crawler-config-lf"></a>

使用 Lake Formation 凭证配置爬网程序时，通过以下信息诊断和修复各种问题。

## 错误：S3 位置：s3://examplepath 未注册
<a name="error-s3-location"></a>

要让爬网程序使用 Lake Formation 凭证运行，您需要先设置 Lake Formation 权限。要解决此错误，请向 Lake Formation 注册目标 Amazon S3 位置。有关更多信息，请参阅 [Registering an Amazon S3 location](https://docs.aws.amazon.com/lake-formation/latest/dg/register-location.html)（注册 Amazon S3 位置）。

## 错误：用户/角色未授权执行：资源上的 lakeformation:GetDataAccess
<a name="error-role-authorization"></a>

请使用 IAM 控制台或 AWS CLI 将 `lakeformation:GetDataAccess` 权限添加至爬网程序。获得此权限后，Lake Formation 将授权访问数据的临时凭证请求。请参见以下策略：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "lakeformation:GetDataAccess"
    ],
    "Resource": "*"
  }
}
```

------

## 错误：其上的 Lake Formation 权限不足（数据库名称：exampleDatabase，表名：exampleTable）
<a name="error-permissions"></a>

在 Lake Formation 控制台 ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)) 中，授予爬网程序针对数据库的角色访问权限（` Create`、`Describe`、`Alter`），该数据库指定为输出数据库。您也可以授予对表的权限。有关更多信息，请参阅 [Granting database permissions using the named resource method](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-cat-perms-named-resource.html)（使用 指定的资源方法授予数据库权限）。

## 错误：s3://examplepath 上的 Lake Formation 权限不足
<a name="error-location-permissions"></a>

1.  **跨账户爬取** 

   1. 使用注册 Amazon S3 存储桶的账户（账户 B）登录 Lake Formation 控制台 ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/))。向将运行爬网程序的账户（账户 A）授予数据位置权限。这将允许爬网程序从目标 Amazon S3 位置读取数据。

   1.  在创建爬网程序的账户（账户 A）中，授予用于爬网程序运行的 IAM 角色目标 Amazon S3 位置上的数据位置权限，以使爬网程序能够从 Lake Formation 中的目标读取数据。有关更多信息，请参阅 [Granting data location permissions (external account)](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-location-permissions-external.html)（授予数据位置权限（外部账户））。

1. **账户内（爬网程序与注册的 Amazon S3 位置位于同一账户）爬取** - 向用于爬网程序在 Amazon S3 位置上运行的 IAM 角色授予数据位置权限，以便爬网程序可以从 Lake Formation 中的目标读取数据。有关更多信息，请参阅 [Granting data location permissions (same account)](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-location-permissions-local.html)（授予数据位置权限（同一账户））。

## 有关使用 Lake Formation 凭证配置爬网程序的常见问题
<a name="faq-crawler-config-lf"></a>

1.  **如何使用 AWS 控制台将爬网程序配置为使用 Lake Formation 凭证运行？** 

   在 AWS Glue 控制台（[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)）中配置爬网程序时，选择选项 **Use Lake Formation credentials for crawling Amazon S3 data source**（使用 Lake Formation 凭证爬取 Amazon S3 数据来源）。对于跨账户爬取，请指定向 Lake Formation 注册的目标 Amazon S3 位置的 AWS 账户 ID。对于账户内爬取，**accountId** 字段是可选的。

1.  **如何使用 AWS CLI 将爬网程序配置为使用 Lake Formation 凭证运行？** 

   在 `CreateCrawler` API 调用期间，添加 `LakeFormationConfiguration`：

   ```
   "LakeFormationConfiguration": {
       "UseLakeFormationCredentials": true,
       "AccountId": "111111111111" (AWS account ID where the target Amazon S3 location is registered with Lake Formation)
     }
   ```

1.  **使用 Lake Formation 凭证的爬网程序支持哪些目标？** 

   使用 Lake Formation 凭证的爬网程序仅支持 Amazon S3（账户内和跨账户爬取）和账户内数据目录目标（其底层位置为 Amazon S3）和 Apache Iceberg 目标。

1.  **作为使用 Lake Formation 凭证的单个爬网程序的一部分，我是否可以爬取多个 Amazon S3 桶？** 

   不可以，对于使用 Lake Formation 凭证售卖的爬取目标，基础 Amazon S3 位置必须属于同一个桶。例如，如果它们在同一个桶 (bucket1) 下，则客户可以使用多个目标位置 `(s3://bucket1/folder1, s3://bucket1/folder2)`。不支持指定不同的桶 (s3://bucket1/folder1, s3://bucket2/folder2)。