本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon DynamoDB 中的基礎設施安全性
作為受管服務,Amazon DynamoDB 受到位於 AWS Well-Architected Framework 中的基礎設施保護中所述 AWS 的全球網路安全程序保護。
您可以使用 AWS 已發佈的API呼叫,透過網路存取 DynamoDB。用戶端可以使用 TLS(Transport Layer Security) 1.2 或 1.3 版。用戶端還必須支援具有完美前向保密性 (PFS) 的密碼套件,例如 Ephemeral Diffie-Hellman (DHE) 或 Elliptic Curve Diffie-Hellman Ephemeral (ECDHE)。現代系統(如 Java 7 和更新版本)大多會支援這些模式。此外,必須使用與IAM委託人相關聯的存取金鑰 ID 和秘密存取金鑰來簽署請求。或者,您可以透過 AWS Security Token Service (AWS STS) 來產生暫時安全憑證來簽署請求。
您也可以使用 DynamoDB 的虛擬私有雲端 (VPC) 端點,讓 中的 Amazon EC2執行個體VPC能夠使用其私有 IP 地址存取 DynamoDB,而不會暴露到公有網際網路。如需詳細資訊,請參閱使用 Amazon VPC端點存取 DynamoDB。
使用 Amazon VPC端點存取 DynamoDB
基於安全考量,許多 AWS 客戶會在 Amazon Virtual Private Cloud 環境 (Amazon ) 中執行其應用程式VPC。使用 Amazon 時VPC,您可以將 Amazon EC2執行個體啟動虛擬私有雲端,該雲端在邏輯上與其他網路隔離,包括公有網際網路。透過 Amazon VPC,您可以控制其 IP 地址範圍、子網路、路由表、網路閘道和安全設定。
注意
如果您在 2013 年 12 月 4 日 AWS 帳戶 之後建立 ,則表示您已在每個 VPC中具有預設值 AWS 區域。預設值VPC已準備好供您使用,您可以立即開始使用,而不必執行任何其他組態步驟。
如需詳細資訊,請參閱 Amazon VPC使用者指南 中的預設子網路VPC和預設子網路。
若要存取公有網際網路,您的 VPC 必須具有網際網路閘道,這是將 連線到網際網路VPC的虛擬路由器。這允許 EC2中在 Amazon 上執行的應用程式VPC存取網際網路資源,例如 Amazon DynamoDB 。
根據預設,與 DynamoDB 之間的通訊會使用 HTTPS通訊協定,該通訊協定會使用 SSL/TLS 加密來保護網路流量。下圖顯示VPC存取 DynamoDB 中的 Amazon EC2執行個體,方法是讓 DynamoDB 使用網際網路閘道,而不是VPC端點。
許多客戶對於透過公有的網際網路來傳送和接收資料,都會有合法的隱私與安全性疑慮。您可以使用虛擬私有網路 (VPN),透過您自己的公司網路基礎設施路由所有 DynamoDB 網路流量,以解決這些疑慮。但是這個方法可能會帶來頻寬和可用性的挑戰。
VPC DynamoDB 的 端點可以緩解這些挑戰。DynamoDB 的VPC端點可讓 中的 Amazon EC2執行個體VPC使用其私有 IP 地址存取 DynamoDB,而不會暴露到公有網際網路。您的EC2執行個體不需要公有 IP 地址,而且您不需要 中的網際網路閘道、NAT裝置或虛擬私有閘道VPC。您可以使用端點政策來控制對 DynamoDB 的存取。您與 VPC AWS 服務之間的流量不會離開 Amazon 網路。
注意
即使您使用公有 IP 地址,在 中託管的執行個體和服務之間的所有VPC通訊 AWS 都會在 AWS 網路中保持私有。從 AWS 網路上具有目的地 AWS 的網路產生的封包會保留在 AWS 全域網路上,但往返 AWS 中國區域的流量除外。
當您為 DynamoDB 建立VPC端點時,區域內 DynamoDB 端點的任何請求 (例如 dynamodb.us-west-2.amazonaws.com) 都會路由至 Amazon 網路中的私有 DynamoDB 端點。您不需要修改在 EC2執行個體上執行的應用程式VPC。端點的名稱會保持不變,但 DynamoDB 的路由會完全在 Amazon 網路中,不會存取公有網際網路。
下圖顯示 中的EC2執行個體如何使用VPCVPC端點存取 DynamoDB 。
如需詳細資訊,請參閱教學課程:使用 DynamoDB 的VPC端點。
共用 Amazon VPC端點和 DynamoDB
若要透過VPC子網路的閘道端點啟用 DynamoDB 服務的存取,您必須擁有該VPC子網路的擁有者帳戶許可。
一旦VPC子網路的閘道端點獲得 DynamoDB 的存取權,任何 AWS 可存取該子網路的帳戶都可以使用 DynamoDB 。這表示VPC子網路中的所有帳戶使用者都可以使用他們有權存取的任何 DynamoDB 資料表。這包括與VPC子網路以外的不同帳戶相關聯的 DynamoDB 資料表。VPC 子網路擁有者仍然可以自行決定限制子網路內的任何特定使用者透過閘道端點使用 DynamoDB 服務。
教學課程:使用 DynamoDB 的VPC端點
本節將逐步引導您設定和使用 DynamoDB 的VPC端點。
步驟 1:啟動 Amazon EC2執行個體
在此步驟中,您會在預設的 Amazon 中啟動 Amazon EC2執行個體VPC。然後,您可以建立和使用 DynamoDB 的VPC端點。
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
選擇 Launch Instance (啟動執行個體) 並執行下列作業:
步驟 1:選擇 Amazon Machine Image (AMI)
-
在 清單頂端AMIs,前往 Amazon LinuxAMI,然後選擇選取 。
步驟 2:選擇執行個體類型
-
在執行個體類型清單的第一項上,選擇 t2.micro。
-
選擇 Next: Configure Instance Details (下一步:設定執行個體詳細資訊)。
步驟 3:設定執行個體詳細資訊
-
前往 Network 並選擇您的預設 VPC。
選擇 Next: Add Storage (下一步:新增儲存體)。
步驟 4:新增儲存體
-
選擇 Next: Tag Instance (下一步:為執行個體新增標籤) 以跳過此步驟。
步驟 5:將執行個體加上標籤
-
選擇 Next: Configure Security Group (下一步:設定安全群組) 以跳過此步驟。
步驟 6:設定安全群組
-
選擇 Select an existing security group (選取現有的安全群組)。
-
在安全群組清單中,選擇 default (預設)。這是您 的預設安全群組VPC。
-
選擇 Next: Review and Launch (下一步:檢閱和啟動)。
步驟 7:檢閱執行個體啟動
-
選擇啟動。
-
-
在 Select an existing key pair or create a new key pair (選取現有的金鑰對或建立新的金鑰對) 視窗中,執行下列其中一項作業:
-
如果您沒有 Amazon EC2金鑰對,請選擇建立新的金鑰對,然後遵循指示操作。系統會要求您下載私有金鑰檔案 (.pem 檔案);稍後登入 Amazon EC2執行個體時,您需要此檔案。
-
如果您已有現有的 Amazon EC2金鑰對,請前往選取金鑰對,然後從清單中選擇金鑰對。您必須已有私有金鑰檔案 ( .pem 檔案),才能登入您的 Amazon EC2執行個體。
-
-
當您設定好金鑰對後,請選擇 Launch Instances (啟動執行個體)。
-
返回 Amazon EC2主控台首頁,然後選擇您啟動的執行個體。在下窗格中的描述索引標籤中,尋找執行個體的公DNS有。例如:
ec2-00-00-00-00.us-east-1.compute.amazonaws.com
。請記下此公有DNS名稱,因為您將需要在本教學課程 () 的下一個步驟中使用它步驟 2:設定您的 Amazon EC2執行個體。
注意
您的 Amazon EC2執行個體將需要幾分鐘的時間才能可用。在您繼續進行下一個步驟之前,請先確定 Instance State (執行個體狀態) 為 running
,並已通過其所有 Status Checks (狀態檢查)。
步驟 2:設定您的 Amazon EC2執行個體
當您的 Amazon EC2執行個體可用時,您將能夠登入並準備首次使用。
注意
下列步驟假設您要從執行 Linux 的電腦連線至 Amazon EC2執行個體。如需其他連線方式,請參閱 Amazon EC2 使用者指南中的連線至您的 Linux 執行個體。
-
您需要授權傳入SSH流量至您的 Amazon EC2執行個體。若要這麼做,您將建立新的EC2安全群組,然後將安全群組指派給EC2執行個體。
-
在導覽窗格中,選擇 Security Groups (安全群組)。
-
選擇 Create Security Group (建立安全群組)。在 Create Security Group (建立安全群組) 視窗中,執行下列動作:
-
Security group name (安全群組名稱):為您的安全群組輸入名稱。例如:
my-ssh-access
-
Description (描述):為安全群組輸入簡短描述。
-
VPC- 選擇您的預設 VPC。
-
在 Security group rules (安全群組規則) 區段中,選擇 Add Rule (新增規則),並執行下列動作:
-
類型 — 選擇 SSH。
-
Source (來源):選擇 My IP (我的 IP)。
-
當您滿意設定後,請選擇 Create (建立)。
-
-
在導覽窗格中,選擇 Instances (執行個體)。
-
選擇您在 中啟動的 Amazon EC2執行個體步驟 1:啟動 Amazon EC2執行個體。
-
選擇 Actions (動作) --> Networking (聯網) --> Change Security Groups (變更安全群組)。
-
在 Change Security Groups (變更安全群組) 下,選取您在前述步驟中建立的安全群組 (例如:
my-ssh-access
)。此外,還應選擇現有的default
安全群組。完成設定後,請選擇 Assign Security Groups (指派安全群組)。
-
-
使用
ssh
命令登入您的 Amazon EC2執行個體,如下列範例所示。ssh -i
my-keypair.pem
ec2-user@public-dns-name
您需要指定私有金鑰檔案 (.pem 檔案) 和執行個體的公有DNS名稱。(請參閱 步驟 1:啟動 Amazon EC2執行個體)。
登入 ID 為
ec2-user
。不需要任何密碼。 -
設定您的 AWS 憑證,如下列範例所示。根據提示輸入您的 AWS 存取金鑰 ID、秘密金鑰和預設區域名稱。
aws configure
AWS Access Key ID [None]:
AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]:us-east-1
Default output format [None]:
您現在可以為 DynamoDB 建立VPC端點。
步驟 3:為 DynamoDB 建立VPC端點
在此步驟中,您將為 DynamoDB 建立VPC端點,並對其進行測試,以確保其有效。
-
在開始之前,請確認您可以使用 DynamoDB 的公有端點來與 DynamoDB 通訊。
aws dynamodb list-tables
輸出會顯示您目前擁有的 DynamoDB 資料表清單。(如果沒有任何資料表,清單將是空白。)
-
確認 DynamoDB 是可在目前 AWS 區域中建立VPC端點的可用服務。(命令會以粗體文字顯示,後面接著輸出範例。)
aws ec2 describe-vpc-endpoint-services
{ "ServiceNames": [ "com.amazonaws.us-east-1.s3", "com.amazonaws.us-east-1.dynamodb" ] }
在範例輸出中,DynamoDB 是其中一個可用的服務,因此您可以繼續為其建立VPC端點。
-
判斷您的VPC識別碼。
aws ec2 describe-vpcs
{ "Vpcs": [ { "VpcId": "vpc-0bbc736e", "InstanceTenancy": "default", "State": "available", "DhcpOptionsId": "dopt-8454b7e1", "CidrBlock": "172.31.0.0/16", "IsDefault": true } ] }
在範例輸出中,VPCID 為
vpc-0bbc736e
。 -
建立VPC端點。針對
--vpc-id
參數,指定上一個步驟的 VPC ID。使用--route-table-ids
參數,將端點與路由表相關聯。aws ec2 create-vpc-endpoint --vpc-id vpc-0bbc736e --service-name com.amazonaws.us-east-1.dynamodb --route-table-ids rtb-11aa22bb
{ "VpcEndpoint": { "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}", "VpcId": "vpc-0bbc736e", "State": "available", "ServiceName": "com.amazonaws.us-east-1.dynamodb", "RouteTableIds": [ "rtb-11aa22bb" ], "VpcEndpointId": "vpce-9b15e2f2", "CreationTimestamp": "2017-07-26T22:00:14Z" } }
-
確認您可以透過VPC端點存取 DynamoDB。
aws dynamodb list-tables
如果需要,您可以嘗試 DynamoDB 的一些其他 AWS CLI 命令。如需詳細資訊,請參閱《AWS CLI 命令參考》。
步驟 4:(選用) 清除
如果您要刪除自己在此教學課程中建立的資源,請按下列步驟執行:
移除 DynamoDB 的VPC端點
-
登入您的 Amazon EC2執行個體。
-
判斷VPC端點 ID。
aws ec2 describe-vpc-endpoints
{ "VpcEndpoint": { "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}", "VpcId": "vpc-0bbc736e", "State": "available", "ServiceName": "com.amazonaws.us-east-1.dynamodb", "RouteTableIds": [], "VpcEndpointId": "vpce-9b15e2f2", "CreationTimestamp": "2017-07-26T22:00:14Z" } }
在範例輸出中,VPC端點 ID 為
vpce-9b15e2f2
。 -
刪除VPC端點。
aws ec2 delete-vpc-endpoints --vpc-endpoint-ids vpce-9b15e2f2
{ "Unsuccessful": [] }
空白陣列
[]
表示成功 (沒有未成功的請求)。
終止您的 Amazon EC2執行個體
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格中,選擇 Instances (執行個體)。
-
選擇您的 Amazon EC2執行個體。
-
依序選擇 Actions (動作)、Instance State (執行個體狀態) 和 Terminate (終止)。
-
在確認視窗中,請選擇 Yes, Terminate (是,終止)。