

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

# 步骤 4：为 VPC 端点连接配置权限
<a name="vpc-endpoints-tutorial.permissions"></a>

本步骤中的过程演示了如何配置规则和权限，以便将 VPC 端点与 Amazon Keyspaces 配合使用。

**为新端点配置入站规则以允许 TCP 入站流量**

1. 在 Amazon VPC 控制台的左侧面板上，选择**端点**，然后选择您在前面的步骤中创建的端点。

1. 选择**管理安全组**，然后选择与此端点关联的安全组。

1. 选择**入站规则**，然后选择 **编辑入站规则**。

1. 添加一条入站规则，**类型**为 **CQLSH/CASSANDRA**。这会将**端口范围**自动设置成 **9142**。

1. 选择**保存规则**以保存新入站规则。

**配置 IAM 用户权限**

1. 确认用于连接 Amazon Keyspaces 的 IAM 用户是否具有相应的权限。在 AWS Identity and Access Management (IAM) 中，您可以使用 AWS 托管策略向 IAM 用户授`AmazonKeyspacesReadOnlyAccess`予对 Amazon Keyspaces 的读取权限。

   1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

   1. 在 IAM 控制台控制面板上，选择 **Users (用户)**，然后从列表中选择您的 IAM 用户。

   1. 在 **Summary (摘要)** 页上，选择 **Add permissions (添加权限)**。

   1. 选择**直接附加现有策略**。

   1. 从策略列表中选择 **AmazonKeyspacesReadOnlyAccess**，然后选择**下一步：查看**。

   1. 选择**添加权限**。

1. 验证您是否可以通过 VPC 端点访问 Amazon Keyspaces。

   ```
   aws keyspaces list-tables --keyspace-name 'my_Keyspace'
   ```

   如果你愿意，你可以尝试使用其他一些针对 Amazon Keyspaces 的 AWS CLI 命令。有关更多信息，请参阅 [AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/)。
**注意**  
IAM 用户或角色访问 Amazon Keyspaces 所需的最低权限是对系统表的读取权限，如以下策略所示。有关基于策略的权限的更多信息，请参阅 [Amazon Keyspaces 基于身份的策略示例](security_iam_id-based-policy-examples.md)。

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "cassandra:Select"
            ],
            "Resource":[
               "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"
            ]
         }
      ]
   }
   ```

1. 向 IAM 用户授予对具有 VPC 的 Amazon EC2 实例的读取权限。

   将 Amazon Keyspaces 与 VPC 端点配合使用时，您需要向访问 Amazon Keyspaces 的 IAM 用户或角色授予*对您的 Amazon EC2 实例和 VPC 的只读权限，以收集端点和网络接口数据*。Amazon Keyspaces 将这一信息存储在 `system.peers` 表中，并使用它来管理连接。
**注意**  
托管式策略 `AmazonKeyspacesReadOnlyAccess_v2` 和 `AmazonKeyspacesFullAccess` 包含允许 Amazon Keyspaces 访问 Amazon EC2 实例以读取可用接口 VPC 端点信息所需的权限。

   1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

   1. 在 IAM 控制台控制面板上，选择**策略**。

   1. 选择**创建策略**，然后选择 **JSON** 选项卡。

   1. 复制以下策略并选择**下一步：标签**。

      ```
      {
         "Version":"2012-10-17",		 	 	 
         "Statement":[
            {
               "Sid":"ListVPCEndpoints",
               "Effect":"Allow",
               "Action":[
                  "ec2:DescribeNetworkInterfaces",
                  "ec2:DescribeVpcEndpoints"
               ],
               "Resource": "*"
            }
         ]
      }
      ```

   1. 选择**下一步：查看**，输入策略的名称 `keyspacesVPCendpoint`，然后选择**创建策略**。

   1. 在 IAM 控制台控制面板上，选择 **Users (用户)**，然后从列表中选择您的 IAM 用户。

   1. 在 **Summary (摘要)** 页上，选择 **Add permissions (添加权限)**。

   1. 选择**直接附加现有策略**。

   1. 从策略列表中选择**密钥空间 VPCendpoint**，然后选择**下一步：查看**。

   1. 选择**添加权限**。

1. 要验证 Amazon Keyspaces `system.peers` 表是否更新了 VPC 信息，请从您的 Amazon EC2 实例使用 `cqlsh` 运行以下查询。如果步骤 2 中您没有在 Amazon EC2 实例上安装 `cqlsh`，请按照[使用 `cqlsh-expansion` 连接 Amazon Keyspaces](programmatic.cqlsh.md#using_cqlsh)中的说明进行操作。

   ```
   SELECT * FROM system.peers;
   ```

   输出返回带有私 IPv6 有 IP 地址的节点，具体取决于您所在 AWS 地区的 VPC 和子网设置。

   ```
    peer                                    | data_center | host_id                              | preferred_ip                            | rack      | release_version | rpc_address                             | schema_version                       | tokens
   -----------------------------------------+-------------+--------------------------------------+-----------------------------------------+-----------+-----------------+-----------------------------------------+--------------------------------------+---------------------------------------------
     2600:1111:2222:3333:283b:8e6:d04f      |   us-east-1 | dddddddd-7a22-3582-a73d-49338a686a53 |  2600:1111:2222:3333:283b:8e6:d04f      | us-east-1 |          3.11.2 |  2600:1111:2222:3333:283b:8e6:d04f      | 05deae2d-6405-494d-a965-c0e5836bcb3c |  {'85070591730234615865843651857942052863'}
    2600:1111:2222:4444:7d26:5a09:1b44      |   us-east-1 | 66666666-035d-37ef-a247-19a6a867ab09 | 2600:1111:2222:4444:7d26:5a09:1b44      | us-east-1 |          3.11.2 | 2600:1111:2222:4444:7d26:5a09:1b44      | 05deae2d-6405-494d-a965-c0e5836bcb3c | {'170141183460469231731687303715884105726'}
   ```
**注意**  
您必须使用与 Amazon Keyspaces 的 `cqlsh` 连接来确认您的 VPC 终端节点配置正确。如果您使用本地环境或在 AWS 管理控制台中使用 Amazon Keyspaces CQL 编辑器，则连接将自动通过公有端点而不是您的 VPC 端点进行。如果您看到九个 IP 地址，则这些地址是 Amazon Keyspaces 针对公有端点连接自动写入 `system.peers` 表的条目。