

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

# 使用接口 VPC 端点连接到 Amazon EMR on EKS
<a name="security-vpc"></a>

您可以使用虚拟私有云 (VPC [Amazon PrivateLink) 中的接口 VPC 终端节点 ()](https://docs.amazonaws.cn/vpc/latest/userguide/vpce-interface.html) 直接连接到 EKS 上的 Amazon EMR，而不必通过互联网进行连接。当您使用接口 VPC 终端节点时，您的 VPC 与 EKS 上的 Amazon EMR 之间的通信完全在网络内进行。 Amazon 每个 VPC 终端节点都由一个或多个[弹性网络接口 (ENIs)](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-eni.html) 表示，其私有 IP 地址位于您的 VPC 子网中。

接口 VPC 终端节点将您的 VPC 直接连接到 EKS 上的 Amazon EMR，无需互联网网关、NAT 设备、VPN 连接或 Direc Amazon t Connect 连接。VPC 中的实例不需要公有 IP 地址便可与 Amazon EMR on EKS API 进行通信。

您可以使用 Amazon Web Services 管理控制台 或 Amazon Command Line Interface (Amazon CLI) 命令创建接口 VPC 终端节点以连接到 EKS 上的 Amazon EMR。有关更多信息，请参阅[创建接口端点](https://docs.amazonaws.cn/AmazonVPC/latest/UserGuide/vpce-interface.html#create-interface-endpoint)。

在创建接口 VPC 终端节点后，如果您为终端节点启用私有 DNS 主机名，则默认 Amazon EMR on EKS 终端节点将解析为您的 VPC 终端节点。Amazon EMR on EKS 的默认服务名称终端节点采用以下格式。

```
emr-containers.Region.amazonaws.com
```

如果您不启用私有 DNS 主机名，Amazon VPC 将提供一个您可以使用的 DNS 终端节点名称，格式如下。

```
VPC_Endpoint_ID.emr-containers.Region.vpce.amazonaws.com
```

有关更多信息，请参阅 Amazon [VPC 用户指南中的接口 VPC 终端节点 (Amazon PrivateLink)](https://docs.amazonaws.cn/vpc/latest/userguide/vpce-interface.html)。Amazon EMR on EKS 支持调用您 VPC 中的所有 [API 操作](https://docs.amazonaws.cn/emr-on-eks/latest/APIReference/API_Operations.html)。

您可以将 VPC 终端节点策略附加到 VPC 终端节点，以控制 IAM 委托人的访问权限。您还可以将安全组与 VPC 端点关联，以便根据网络流量的源和目标（例如 IP 地址范围）控制入站和出站访问。有关更多信息，请参阅[使用 VPC 端点控制对服务的访问](https://docs.amazonaws.cn/vpc/latest/userguide/vpc-endpoints-access.html)。

## 为 Amazon EMR on EKS 创建 VPC 终端节点策略
<a name="security-vpc-examples"></a>

您可以为 Amazon EMR on EKS 的 Amazon VPC 终端节点创建一个策略，在该策略中指定以下内容：
+ 可以或不能执行操作的委托人
+ 可执行的操作
+ 可对其执行操作的资源

有关更多信息，请参阅《Amazon VPC 用户指南》中的[使用 VPC 终端节点控制对服务的访问权限](https://docs.amazonaws.cn/vpc/latest/userguide/vpc-endpoints-access.html)。

**Example 拒绝来自指定 Amazon 账户的所有访问的 VPC 终端节点策略**  
以下 VPC 终端节点策略拒绝 Amazon 账户使用该终端节点访问*123456789012*所有资源。  

```
{
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        },
        {
            "Action": "*",
            "Effect": "Deny",
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "123456789012"
                ]
            }
        }
    ]
}
```

**Example 仅允许 VPC 访问指定的 IAM 委托人（用户）的 VPC 终端节点策略**  
以下 VPC 终端节点策略仅允许 Amazon 账户*lijuan*中的 IAM 用户拥有完全访问权限*123456789012*。使用终端节点拒绝所有其它 IAM 委托人进行访问。  

```
{
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::123456789012:user/lijuan"
                ]
            }
        }
    ]
}
```

**Example 允许只读 Amazon EMR on EKS 操作的 VPC 终端节点策略**  
以下 VPC 终端节点策略仅*123456789012*允许 Amazon 账户在 EKS 上执行指定的 Amazon EMR 操作。  
指定的操作为 Amazon EMR on EKS 提供等效的只读访问权限。针对指定账户拒绝 VPC 上的所有其它操作。所有其它帐户都被拒绝进行任何访问。有关 Amazon EMR on EKS 操作列表，请参阅 [Amazon EMR on EKS 的操作、资源和条件键](https://docs.amazonaws.cn/IAM/latest/UserGuide/list_amazonemroneksemrcontainers.html)。  

```
{
    "Statement": [
        {
            "Action": [
                "emr-containers:DescribeJobRun",
                "emr-containers:DescribeVirtualCluster",
                "emr-containers:ListJobRuns",
                "emr-containers:ListTagsForResource",
                "emr-containers:ListVirtualClusters"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "123456789012"
                ]
            }
        }
    ]
}
```

**Example 拒绝访问指定虚拟集群的 VPC 终端节点策略**  
以下 VPC 终端节点策略允许所有账户和委托人拥有完全访问权限，但拒绝 Amazon 账户*123456789012*访问在具有集群 ID *A1B2CD34EF5G* 的虚拟集群上执行的操作。对于仍然不被允许的虚拟集群，其它 Amazon EMR on EKS 操作不支持资源级权限。有关 Amazon EMR on EKS 操作及其相应资源类型的列表，请参阅《Amazon Identity and Access Management 用户指南》中的 [Amazon EMR on EKS 的操作、资源和条件键](https://docs.amazonaws.cn/IAM/latest/UserGuide/list_amazonemroneksemrcontainers.html)。**  

```
{
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        },
        {
            "Action": "*",
            "Effect": "Deny",
            "Resource": "arn:aws:emr-containers:us-west-2:123456789012:/virtualclusters/A1B2CD34EF5G",
            "Principal": {
                "AWS": [
                    "123456789012"
                ]
            }
        }
    ]
}
```