本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将接口 VPC 终端节点与接口 VPC 终端节点结合使用来使用来
接口 VPC 终端节点可将私有通信。将通信。接口 VPC 终端节点由Amazon PrivateLink,后者是Amazon该服务支持 VPC 和 VPC 之间的私密通信Amazon服务。
Amazon PrivateLink将弹性网络接口与私有 IP 地址结合使用来支持这一点,将弹性网络接口与私有 IP 地址结合使用来支持服务通信。接口 VPC 终端节点不需要 Internet 网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接。有关更多信息,请参阅Amazon Virtual Private Cloud和接口 VPC 终端节点接口 (Amazon PrivateLink)。
主题
将接口 VPC 终端节点与接口 VPC 终端节点结合使用来接口
您可以创建接口 VPC 终端节点,以便 Amazon Keyspaces 和您的 Amazon VPC 资源之间的流量开始流经接口 VPC 终端节点。要开始使用,请按照以下步骤创建接口终端节点。接下来,编辑与您在上一步中创建的终端节点关联的安全组,并为端口 9142 配置入站规则。有关更多信息,请参阅添加、删除和更新规则。
对于 a step-by-step 通过 VPC 终端节点配置与 Amazon Keyspaces 的连接的教程,请参阅教程:使用接口 VPC 终端节点,连接Amazon Keyata(创建)。。学习如何将弹性通信 Amazon Keyspaces 资源与应用程序分开使用来支持跨账户访问权限,将应用程序与应用程序分开使用来支持跨Amazon Web Services 账户在 VPC 中,请参见配置跨账户Keyspaces。
填充system.peers
包含接口 VPC 终端节点信息的表条目
Apache Cassandra 驱动程序使用system.peers
表用于查询有关集群的节点信息。Cassandra 驱动程序使用节点信息对连接进行负载平衡并重试操作。Amazon Keyspaces 填充了九个条目system.peers
自动为通过公共端点连接的客户端提供表格。
为了向通过接口 VPC 终端节点连接的客户端提供类似的功能,Amazon Keyspaces 会填充system.peers
您的账户中的表格,其中包含每个可用区 VPC 终端节点的条目。要在中查找和存储可用的接口 VPC 终端节点system.peers
表,Amazon Keyspaces 要求您向用于连接亚马逊密钥空间的 IAM 实体授予查询您的 VPC 以获取终端节点和网络接口信息的访问权限。
重要
填充system.peers
带有可用接口的表 VPC 终端节点可改善负载平衡并提高读/写吞吐量。建议所有使用接口 VPC 终端节点访问亚马逊密钥空间的客户使用,Apache Spark 必须使用此选项。
要向用于连接到 Amazon Keyspaces 的 IAM 实体授予查找必要接口 VPC 终端节点信息的权限,您可以更新现有的 IAM 角色或用户策略,或者创建新的 IAM 策略,如以下示例所示。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"ListVPCEndpoints", "Effect":"Allow", "Action":[ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints" ], "Resource":"*" } ] }
注意
托管策略AmazonKeyspacesReadOnlyAccess_v2
和AmazonKeyspacesFullAccess
包括允许 Amazon Keyspaces 访问 Amazon EC2 实例以读取有关可用接口 VPC 终端节点的信息所需的权限。
要确认策略设置是否正确,请查询system.peers
表格以查看网络信息。如果system.peers
表为空,它可能表示策略未成功配置,或者您已超出请求速率配额DescribeNetworkInterfaces
和DescribeVPCEndpoints
接口 API 操作。DescribeVPCEndpoints
落入Describe*
类别,被视为非变异动作。DescribeNetworkInterfaces
属于以下子集未经过滤和未分页的非变异动作,并适用不同的配额。有关更多信息,请参阅请求代币桶大小和充值率在 Amazon EC2 API 参考中。
如果您确实看到一张空表,请在几分钟后重试,以排除请求速率配额问题。要验证您是否正确配置了 VPC 终端节点,请参阅我的 VPC 终端节点连接无法正常工作。如果您的查询返回表中的结果,则说明您的策略配置正确。
控制 Amazon Keyspaces 接口 VPC 终端节点的访问权限
利用 VPC 终端节点策略,可将两种方式与通信:
-
IAM 政策— 您可以控制可将特定 VPC 终端节点与特有 VPC 终端节点结合使用来控制请求、用户或群组。您可以通过在附加到 IAM 用户、组或角色的策略中使用条件键来完成此操作。
-
私有通信— 您可以将策略与策略结合使用来控制哪些 VPC 终端节点可以访问您的 Amazon Keyspaces 资源。要限制仅允许通过特定 VPC 终端节点的流量来访问特定键空间或表,请编辑限制资源访问的现有 IAM 策略并添加该 VPC 终端节点。
以下是接口 Amazon Keyspaces 资源的终端节点策略示例。
-
IAM 策略示例:除非流量来自指定的 VPC 终端节点,否则限制对特定 Amazon Keyspaces 表的所有访问权限— 可将此示例策略附加到 IAM 用户、角色或群组。除非传入流量来自指定的 VPC 终端节点,否则它会限制对指定的 Amazon Keyspaces 表的访问。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UserOrRolePolicyToDenyAccess", "Action": "cassandra:*", "Effect": "Deny", "Resource": [ "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable", "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*" ], "Condition": { "StringNotEquals" : { "aws:sourceVpce": "vpce-abc123" } } } ] }
注意
要限制对特定表的访问,还必须包括对系统表的访问权限。系统表为只读。
-
接口 VPC 策略示例:只读通信— 此示例策略可以附加到 VPC 终端节点。(欲了解更多信息,请参见控制对亚马逊 VPC 资源的访问)。它将操作限制为通过其连接的 VPC 终端节点对 Amazon Keyspaces 资源的只读访问。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnly", "Principal": "*", "Action": [ "cassandra:Select" ], "Effect": "Allow", "Resource": "*" } ] }
-
接口 VPC 策略示例:将弹性通信 Keyspaces 表与特定的通信— 此示例策略可以附加到 VPC 终端节点。它限制通过所附加到的 VPC 终端节点访问特定表。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictAccessToTable", "Principal": "*", "Action": "cassandra:*", "Effect": "Allow", "Resource": [ "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable", "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*" ] } ] }
注意
要限制对特定表的访问,还必须包括对系统表的访问权限。系统表为只读。
可用性
Amazon Keyspaces 支持在所有接口中使用接口 VPC 终端节点Amazon Web Services 区域在哪里提供服务。有关更多信息,请参阅Amazon Keyspaces 服务端点:
终端节点策略和 Amazon Keyspaces point-in-time恢复 (PITR)
如果您将 IAM 策略与条件键为了限制传入流量,表还原操作可能会失败。例如,如果您使用将源流量限制到特定 VPC 终端节点aws:SourceVpce
条件键,表还原操作失败。要允许 Amazon Keyspaces 代表您的委托人执行恢复操作,您必须添加一个aws:ViaAWSService
您的 IAM 策略的条件密钥。的aws:ViaAWSService
条件键允许在任何时候进行访问Amazon服务将委托人的证书与委托人通信。有关更多信息,请参阅IAM JSON 策略元素:条件键在IAM 用户指南。以下政策就是一个例子。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"CassandraAccessForVPCE", "Effect":"Allow", "Action":"cassandra:*", "Resource":"*", "Condition":{ "Bool":{ "aws:ViaAWSService":"false" }, "StringEquals":{ "aws:SourceVpce":[ "vpce-12345678901234567" ] } } }, { "Sid":"CassandraAccessForAwsService", "Effect":"Allow", "Action":"cassandra:*", "Resource":"*", "Condition":{ "Bool":{ "aws:ViaAWSService":"true" } } } ] }
常见错误和警告
如果您使用的是亚马逊 Virtual Private Cloud,并且连接到 Amazon Keyspaces,则可能会看到以下警告。
Control node cassandra.us-east-1.amazonaws.com/1.111.111.111:9142 has an entry for itself in system.peers: this entry will be ignored. This is likely due to a misconfiguration; please verify your rpc_address configuration in cassandra.yaml on all nodes in your cluster.
出现此警告是因为system.peers
表中包含 Amazon Keyspaces 有权查看的所有亚马逊 VPC 终端节点的条目,包括您通过其连接的亚马逊 VPC 终端节点。您可以放心地忽略此警告。
有关其他错误,请参阅我的 VPC 终端节点连接无法正常工作。