

# 使用接口 VPC 端点连接到 Amazon Athena
<a name="interface-vpc-endpoint"></a>

您可以通过使用 [接口 VPC 端点（AWS PrivateLink）](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)和虚拟私有云（VPC）中的 [AWS Glue VPC 端点](https://docs.aws.amazon.com/glue/latest/dg/vpc-endpoint.html) 来提高 VPC 的安全性。接口 VPC 端点允许您控制可以从 VPC 内部连接到的目的地，从而提高安全性。每个 VPC 端点都由您的 VPC 子网中一个或多个使用私有 IP 地址的[弹性网络接口](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)（ENI）代表。

接口 VPC 端点将您的 VPC 直接连接到 Athena，而无需互联网网关、NAT 设备、VPN 连接或 Direct Connect 连接。VPC 中的实例不需要公有 IP 地址便可与 Athena API 进行通信。

要通过您的 VPC 使用 Athena，您必须从位于 VPC 中的实例进行连接，或者使用 Amazon 虚拟专用网络 (VPN) 或 Direct Connect 将您的专用网络连接到 VPC。有关 Amazon VPN 的信息，请参阅《Amazon Virtual Private Cloud 用户指南》**中的 [VPN 连接](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)。有关 AWS Direct Connect 连接的更多信息，请参阅在《Direct Connect 用户指南》**中的[创建连接](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html)。

在 [Amazon VPC](https://docs.aws.amazon.com/general/latest/gr/rande.html#vpc_region) 和 [Athena](https://docs.aws.amazon.com/general/latest/gr/rande.html#athena) 均可用的所有 AWS 区域 中，Athena 支持 VPC 端点。

您可以创建接口 VPC 端点以使用 AWS 管理控制台 控制台或 AWS Command Line Interface（AWS CLI）命令连接到 Athena。有关更多信息，请参阅[创建接口端点](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)。

在创建接口 VPC 端点后，如果您为端点启用[私有 DNS](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-private-dns) 主机名，则默认 Athena 端点（https://athena.*Region*.amazonaws.com）将解析为您的 VPC 端点。

如果您尚未启用私有 DNS 主机名，则 Amazon VPC 将提供一个您可以使用的 DNS 端点名称，格式如下：

```
VPC_Endpoint_ID.athena.Region.vpce.amazonaws.com
```

有关更多信息，请参阅《Amazon VPC 用户指南》**中的[接口 VPC 端点（AWS PrivateLink）](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)。

Athena 支持调用您的 VPC 中的所有 [API 操作](https://docs.aws.amazon.com/athena/latest/APIReference/API_Operations.html)。

## 为 Athena 创建 VPC 端点策略
<a name="api-private-link-policy"></a>

您可以为 Athena 的 Amazon VPC 端点创建一个策略，指定如下限制：
+ **主体** – 可执行操作的主体。
+ **操作** – 可执行的操作。
+ **资源** – 可对其执行操作的资源。
+ **仅限可信身份** - 使用 `aws:PrincipalOrgId` 条件将访问权限限制为仅限 AWS 组织中的凭证。这可以帮助防止主体非预期访问。
+ **仅限可信资源** - 使用 `aws:ResourceOrgId` 条件可防止访问非预期资源。
+ **仅限可信身份和资源** - 为 VPC 端点创建组合策略，以帮助防止访问非预期主体和资源。

有关更多信息，请参阅《*Amazon VPC 用户指南*》中的[使用 VPC 端点控制对服务的访问](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html)以及 AWS 白皮书*在 AWS 上构建数据边界*中的[附录 2 - VPC 端点策略示例](https://docs.aws.amazon.com/whitepapers/latest/building-a-data-perimeter-on-aws/appendix-2-vpc-endpoint-policy-examples.html)。

**Example – VPC 端点策略**  
以下示例允许按组织身份向组织资源发出请求，并允许 AWS 服务主体发出请求。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRequestsByOrgsIdentitiesToOrgsResources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "my-org-id",
                    "aws:ResourceOrgID": "my-org-id"
                }
            }
        },
        {
            "Sid": "AllowRequestsByAWSServicePrincipals",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "aws:PrincipalIsAWSService": "true"
                }
            }
        }
    ]
}
```

每当您使用 IAM 策略时，请确保遵循 IAM 最佳实践。有关更多信息，请参阅《[IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)》中的 *IAM 安全最佳实践*。

## 关于共享子网中的 VPC 端点
<a name="interface-vpc-endpoint-shared-subnets"></a>

您无法在与您共享的子网中创建、描述、修改或删除 VPC 端点。但是，您可以在与您共享的子网中使用 VPC 端点。有关 VPC 共享的信息，请参阅《*Amazon VPC 用户指南*》中的[与其他账户共享 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html)。