

# Amazon Athena AWS CMDB 连接器
<a name="connectors-cmdb"></a>

使用 Amazon Athena AWS CMDB 连接器使 Athena 可以与各种 AWS 服务通信，以便您可以使用 SQL 查询这些服务。

此连接器可以作为联合目录注册到 Glue Data Catalog。此连接器支持 Lake Formation 中在目录、数据库、行和标签级别定义的数据访问控制。此连接器使用 Glue 连接将配置属性集中保存到 Glue 中。

## 先决条件
<a name="connectors-cmdb-prerequisites"></a>
+ 可以使用 Athena 控制台或 AWS Serverless Application Repository 将该连接器部署到您的 AWS 账户。有关更多信息，请参阅[创建数据来源连接](connect-to-a-data-source.md)或[使用 AWS Serverless Application Repository 部署数据来源连接器](connect-data-source-serverless-app-repo.md)。

## 参数
<a name="connectors-cmdb-parameters"></a>

使用本节中的参数来配置 AWS CMDB 连接器。

### Glue 连接（推荐）
<a name="connectors-cmdb-gc"></a>

我们建议您使用 Glue 连接对象来配置 AWS CMDB 连接器。要执行此操作，请将 AWS CMDB 连接器 Lambda 的 `glue_connection` 环境变量设置为要使用的 Glue 连接的名称。

**Glue 连接属性**

使用以下命令来获取 Glue 连接对象的架构。此架构包含可用于控制连接的所有参数。

```
aws glue describe-connection-type --connection-type CMDB
```

**Lambda 环境属性**

**glue\$1connection** – 指定与联合连接器关联的 Glue 连接的名称。

**注意**  
所有使用 Glue 连接的连接器都必须使用 AWS Secrets Manager 来存储凭证。
使用 Glue 连接创建的 AWS CMDB 连接器不支持使用多路复用处理程序。
使用 Glue 连接创建的 AWS CMDB 连接器仅支持 `ConnectionSchemaVersion` 2。

### 旧连接
<a name="connectors-cmdb-legacy"></a>

**注意**  
2024 年 12 月 3 日及之后创建的 Athena 数据来源连接器使用 AWS Glue 连接。

下面列出的参数名称和定义适用于在没有关联 Glue 连接器时创建的 Athena 数据来源连接器。仅在[手动部署](connect-data-source-serverless-app-repo.md)早期版本的 Athena 数据来源连接器或未指定 `glue_connection` 环境属性时才使用以下参数。

**Lambda 环境属性**
+ **spill\$1bucket** - 为超出 Lambda 函数限制的数据指定 Amazon S3 存储桶。
+ **spill\$1prefix** -（可选）默认为指定 `spill_bucket`（称为 `athena-federation-spill`）中的子文件夹。我们建议您在此位置配置 Amazon S3 [存储生命周期](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)，以删除早于预定天数或小时数的溢出内容。
+ **spill\$1put\$1request\$1headers** —（可选）用于溢出的 Amazon S3 `putObject` 请求的请求标头和值的 JSON 编码映射（例如 `{"x-amz-server-side-encryption" : "AES256"}`)。有关其他可能的标头，请参阅《[Amazon Simple Storage Service API 参考](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)》中的 *PutObject*。
+ **kms\$1key\$1id** -（可选）默认情况下，将使用经过 AES-GCM 身份验证的加密模式和随机生成的密钥对溢出到 Amazon S3 的任何数据进行加密。要让您的 Lambda 函数使用 KMS 生成的更强的加密密钥（如 `a7e63k4b-8loc-40db-a2a1-4d0en2cd8331`），您可以指定 KMS 密钥 ID。
+ **disable\$1spill\$1encryption** -（可选）当设置为 `True` 时，将禁用溢出加密。默认值为 `False`，此时将使用 AES-GCM 对溢出到 S3 的数据使用进行加密 - 使用随机生成的密钥，或者使用 KMS 生成密钥。禁用溢出加密可以提高性能，尤其是当您的溢出位置使用[服务器端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)时。
+ **default\$1ec2\$1image\$1owner** –（可选）设置后，控制筛选 [Amazon 机器映像 (AMI)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) 的默认 Amazon EC2 映像所有者。如果您未设置此值，并且您对 EC2 映像表的查询不包含所有者筛选条件，则您的结果将包括所有公有映像。

## 数据库和表
<a name="connectors-cmdb-databases-and-tables"></a>

Athena AWS CMDB 连接器使以下数据库和表可用于查询您的 AWS 资源清单。有关每个表中可用列的更多信息，请使用 Athena 控制台或 API 运行 `DESCRIBE database.table` 语句。
+ **ec2** - 该数据库包含 Amazon EC2 相关资源，包括以下内容。
+ **ebs\$1volumes** - 包含您的 Amazon EBS 卷的详细信息。
+ **ec2\$1instances** - 包含您的 EC2 实例的详细信息。
+ **ec2\$1images** - 包含您的 EC2 实例映像的详细信息。
+ **routing\$1tables** - 包含您的 VPC 路由表的详细信息。
+ **security\$1groups** - 包含您的安全组的详细信息。
+ **子网** - 包含您的 VPC 子网的详细信息。
+ **vpcs** - 包含您的 VPC 的详细信息。
+ **emr** - 该数据库包含 Amazon EMR 相关资源，包括以下内容。
+ **emr\$1clusters** - 包含您的 EMR 集群的详细信息。
+ **rds** - 该数据库包含 Amazon RDS 相关资源，包括以下内容。
+ **rds\$1instances** - 包含您的 RDS 实例的详细信息。
+ **s3** - 该数据库包含 RDS 相关资源，包括以下内容。
+ **桶** - 包含您的 Amazon S3 存储桶的详细信息。
+ **对象** - 包含您的 Amazon S3 对象（不包括其内容）的详细信息。

## 所需权限
<a name="connectors-cmdb-required-permissions"></a>

要获取有关此连接器所需 IAM policy 的完整详细信息，请查看 [athena-aws-cmdb.yaml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-aws-cmdb/athena-aws-cmdb.yaml) 文件的 `Policies` 部分。以下列表汇总了所需的权限。
+ **Amazon S3 写入权限** – 连接器需要对 Amazon S3 中的位置具有写入权限，以溢出大型查询的结果。
+ **Athena GetQueryExecution** – 当上游 Athena 查询终止时，该连接器将使用此权限快速失败。
+ **S3 清单** - 连接器使用此权限列出您的 Amazon S3 存储桶和对象。
+ **EC2 描述** - 连接器使用此权限来描述资源，例如您的 Amazon EC2 实例、安全组、VPC 和 Amazon EBS 卷。
+ **EMR 描述/列表** - 连接器使用此权限来描述您的 EMR 集群。
+ **RDS 描述** - 连接器使用此权限来描述您的 RDS 实例。

## 性能
<a name="connectors-cmdb-performance"></a>

目前，Athena AWS CMDB 连接器不支持并行扫描。谓词下推在 Lambda 函数中执行。在可能的情况下，部分谓词会被推送到正在查询的服务。例如，查询特定 Amazon EC2 实例的详细信息会调用具有特定实例 ID 的 EC2 API 来运行目标描述操作。

## 许可证信息
<a name="connectors-cmdb-license-information"></a>

Amazon Athena AWS CMDB 连接器项目已获得 [Apache-2.0 许可证](https://www.apache.org/licenses/LICENSE-2.0.html)授权。

## 其他资源
<a name="connectors-cmdb-additional-resources"></a>

有关此连接器的更多信息，请访问 GitHub.com 上的[相应站点](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-aws-cmdb)。