將 Amazon Keyspaces 與介面 VPC 端點搭配使用 - Amazon Keyspaces (適用於 Apache Cassandra)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 Amazon Keyspaces 與介面 VPC 端點搭配使用

介面 VPC 端點可讓您在 Amazon VPC 中執行的虛擬私有雲 (VPC) 與 Amazon Keyspaces 間之間進行私有通訊。介面 VPC 端點由支援 AWS PrivateLink,這是一項 AWS 服務,可在 VPC 和 AWS 服務之間進行私有通訊。

AWS PrivateLink 透過在 VPC 中使用具有私有 IP 地址的 elastic network interface 來啟用此功能,以便網路流量不會離開 Amazon 網路。介面 VPC 端點不需要網際網路閘道、NAT 裝置、VPN 連接或是 AWS Direct Connect 連線。如需詳細資訊,請參閱 Amazon Virtual Private Cloud 端和介面 VPC 私有雲端節點 (AWS PrivateLink)

使用 Amazon Keyspaces 的界面 VPC 端點

您可以建立介面 VPC 端點,以便 Amazon Keyspaces 間和 Amazon VPC 資源之間的流量開始流經界面 VPC 端點。若要開始使用,請依照下列步驟建立介面端點。接下來,編輯與您在上一個步驟中建立的端點相關聯的安全性群組,並設定連接埠 9142 的輸入規則。如需詳細資訊,請參閱新增、移除和更新規則

如需透過 VPC 端點設定連線至 Amazon Keyspaces 的 step-by-step 教學課程,請參閱。教學課程:使用介面 VPC 端點連接至 Amazon Keyspaces要了解如何為 Amazon Keyspaces 資源設定跨帳戶存取,與 VPC 中不同 AWS 帳戶 的應用程式分開,請參閱。設定亞馬遜 Keyspaces 的跨帳戶存取權

使用介面 VPC 端點資訊填入system.peers表格項目

阿帕奇卡桑德拉驅動程序使用該system.peers表來查詢有關集群的節點信息。卡桑德拉驅動程序使用節點信息來負載平衡連接並重試操作。Amazon Keyspaces 會為透過公有端點連線的用戶端自動在system.peers表格中填入九個項目。

為了讓透過虛擬私人雲端端點連線的用戶端具有類似功能,Amazon Keyspaces space 會在您的帳戶中填入system.peers資料表,並針對可用 VPC 端點的每個可用區域填入一個項目。若要在system.peers表格中查詢並存放可用的介面 VPC 端點,Amazon Keyspaces 要求您授與用於連線到 Amazon Keyspaces 存取權限的 IAM 實體,以查詢 VPC 以取得端點和網路界面資訊。

重要

將可用的介面 VPC 端點填入system.peers表格,可改善負載平衡並增加讀取/寫入輸送量。建議所有使用接口 VPC 端點訪問 Amazon Keyspaces 的客戶,這是 Apache Spark 所必需的。

若要授與用於連線到 Amazon Keyspaces 許可的 IAM 實體以查詢必要的界面 VPC 端點資訊,您可以更新現有的 IAM 角色或使用者政策,或建立新的 IAM 政策,如以下範例所示。

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

受管政策AmazonKeyspacesReadOnlyAccess_v2AmazonKeyspacesFullAccess包含允許 Amazon Keyspaces 存取 Amazon EC2 執行個體以讀取有關可用界面 VPC 端點的資訊的必要許可。

若要確認原則已正確設定,請查詢system.peers表格以查看網路資訊。如果資system.peers料表是空的,表示政策尚未成功設定,或者您已超過 DescribeVPCEndpoints API 動作的DescribeNetworkInterfaces要求率配額。 DescribeVPCEndpoints屬於該Describe*類別,被認為是非變異動作。 DescribeNetworkInterfaces於未過濾和未分頁的非變異操作的子集,並適用不同的配額。如需詳細資訊,請參閱 Amazon EC2 API 參考中的請求令牌儲存貯體大小和重新填充率

如果您看到空白資料表,請在幾分鐘後再試一次,以排除要求率配額問題。若要確認您已正確設定 VPC 端點,請參閱我的 VPC 端點連線無法正常運作。如果您的查詢傳回資料表中的結果,表示您的原則已正確設定。

控制 Amazon Keyspaces 對介面 VPC 端點的存取

使用 VPC 端點原則,您可以透過兩種方式控制資源的存取:

  • IAM 政策 — 您可以控制允許透過特定 VPC 端點存取 Amazon Keyspaces 的請求、使用者或群組。您可以在附加至 IAM 使用者、群組或角色的政策中使用條件金鑰來執行此操作。

  • VPC 政策 — 您可以透過將政策附加到這些 VPC 端點來控制哪些 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 端點。如需詳細資訊,請參閱控制 Amazon VPC 資源的存取權)。它將動作限制為透過連接到其所連接的 VPC 端點對 Amazon Keyspaces 資源的唯讀存取。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnly", "Principal": "*", "Action": [ "cassandra:Select" ], "Effect": "Allow", "Resource": "*" } ] }
  • VPC 政策範例:限制對特定 Amazon 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 支援在所有可用服務的 AWS 區域 地方使用介面 VPC 端點。如需詳細資訊,請參閱 亞馬遜 Keyspaces 的服務端點

VPC 端點政策和 Amazon Keyspaces point-in-time 恢復 (PITR)

如果您使用 IAM 政策搭配條件金鑰來限制傳入流量,表格還原作業可能會失敗。例如,如果您使用aws:SourceVpce條件金鑰將來源流量限制到特定的 VPC 端點,則資料表還原作業會失敗。若要允許 Amazon 金 Keyspaces 代表您的主體執行還原作業,您必須將aws:ViaAWSService條件金鑰新增至 IAM 政策。當任何 AWS 服務使用主體的認證發出要求時,aws:ViaAWSService條件索引鍵允許存取。如需詳細資訊,請參閱 IAM 使用者指南中的 IAM JSON 政策元素:條件金鑰。以下策略是這方面的一個例子。

{ "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" } } } ] }

常見錯誤和警告

如果您使用的是 Amazon 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 具有檢視權限的所有 Amazon VPC 端點的項目,包括您所連接的 Amazon VPC 端點。您可以放心地忽略此警告。

如需其他錯誤,請參閱我的 VPC 端點連線無法正常運作