使用 Amazon 數據 Firehose AWS PrivateLink - Amazon 數據 Firehose

Amazon 數據 Firehose 以前被稱為 Amazon Kinesis Data Firehose

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

使用 Amazon 數據 Firehose AWS PrivateLink

適用於 Amazon 資料 Firehose 的 VPC 端點 (AWS PrivateLink) 介面

您可以使用界面 VPC 端點來防止 Amazon VPC 和 Amazon 數據 Firehose 之間的流量離開 Amazon 網絡。介面 VPC 端點不需要網際網路閘道、NAT 裝置、VPN 連線或 AWS Direct Connect 連線。介面虛擬私人雲端端點採用這項 AWS 技術 AWS PrivateLink,可透過 elastic network interface 與 Amazon VPC 中的私有 IP,在 AWS 服務之間進行私有通訊。如需詳細資訊,請參閱 Amazon Virtual Private Cloud

使用接口 VPC 端點(AWS PrivateLink)用於 Amazon 數據 Firehose 件

若要開始使用,請建立一個介面 VPC 端點,以便讓 Amazon VPC 資源中的 Amazon 資料 Firehose 流量開始流經界面 VPC 端點。建立端點時,您可以在端點上附加端點政策,以控制對 Amazon Data Firehose 的存取。有關使用政策控制從 VPC 端點到 Amazon Data Firehose 的存取的詳細資訊,請參閱使用 VPC 端點控制對服務的存取

以下範例顯示如何在 VPC 中設定 AWS Lambda 函數,並建立 VPC 端點,以允許該功能與 Amazon Data Firehose 服務安全通訊。在此範例中,您使用政策允許 Lambda 函數列出目前區域中的 Firehose 串流,但不能描述任何 Firehose 串流。

建立 VPC 端點
  1. 登入 AWS Management Console 並開啟 Amazon VPC 主控台,網址為 https://console.aws.amazon.com/vpc/

  2. 在 VPC 儀表板中選擇 ​Endpoints (端點)。​

  3. 選擇建立端點

  4. 在服務名稱清單中,選擇 com.amazonaws.your_region.kinesis-firehose

  5. 選擇要在其中建立端點的 VPC 和一或多個子網路。

  6. 選擇要與端點關聯的一或多個安全群組。

  7. 對於 Policy (政策),選擇 Custom (自訂) 並貼上以下政策:

    { "Statement": [ { "Sid": "Allow-only-specific-PrivateAPIs", "Principal": "*", "Action": [ "firehose:ListDeliveryStreams" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Sid": "Allow-only-specific-PrivateAPIs", "Principal": "*", "Action": [ "firehose:DescribeDeliveryStream" ], "Effect": "Deny", "Resource": [ "*" ] } ] }
  8. 選擇建立端點

建立要與 ​Lambda 函數搭配使用的 IAM 角色
  1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在左側導覽窗格中,選擇角色,然後選擇建立角色

  3. 選取可信實體的類型下,保留預設選項 AWS 服務

  4. Choose the service that will use this role (選擇將使用此角色的服務) 下,選擇 Lambda (Lambda)

  5. 選擇 Next: Permissions (下一步:許可)

  6. 在政策清單中,搜尋和新增名為 AWS LambdaVPCAccessExecutionRoleAmazonDataFirehoseReadOnlyAccess 的兩個政策。​

    重要

    以下是範例。您可能需要對生產環境採用更嚴格的政策。

  7. 選擇下一步:標籤。在本練習中,您不需要新增標籤。選擇下一步:檢閱

  8. 輸入角色名稱,然後選擇建立角色

在 VPC 中建立 Lambda 函數
  1. 開啟主 AWS Lambda 控台,網址為 https://console.aws.amazon.com/lambda/

  2. 選擇建立函數

  3. 選擇從頭開始撰寫

  4. 輸入函數的名稱,然後將「執行時間」設定為Python 3.9或更高。

  5. Permissions (許可) 下,展開 Choose or create an execution role (選擇或建立執行角色)

  6. Execution role (執行角色) 清單中,選擇 Use an existing role (使用現有角色)

  7. Existing role (現有角色) 清單中,選擇您以上建立的角色。

  8. 選擇建立函數

  9. Function code (函數程式碼) 中貼上以下程式碼。

    import json import boto3 import os from botocore.exceptions import ClientError def lambda_handler(event, context): REGION = os.environ['AWS_REGION'] client = boto3.client( 'firehose', REGION ) print("Calling list_delivery_streams with ListDeliveryStreams allowed policy.") delivery_stream_request = client.list_delivery_streams() print("Successfully returned list_delivery_streams request %s." % ( delivery_stream_request )) describe_access_denied = False try: print("Calling describe_delivery_stream with DescribeDeliveryStream denied policy.") delivery_stream_info = client.describe_delivery_stream(DeliveryStreamName='test-describe-denied') except ClientError as e: error_code = e.response['Error']['Code'] print ("Caught %s." % (error_code)) if error_code == 'AccessDeniedException': describe_access_denied = True if not describe_access_denied: raise else: print("Access denied test succeeded.")
  10. Basic settings (基本設定) 下,將逾時設定為 1 分鐘。

  11. Network (網路) 下,選擇以上端點建立所在的 VPC,然後選擇子網路與您在建立安全群組時與該端點建立關聯的安全群組。

  12. 請在頁面頂端附近選擇儲存

  13. 選擇 測試

  14. 輸入事件名稱,然後選擇建立

  15. 再次選擇 Test (測試)。這可讓函數得以執行。在執行結果出現後,展開 Details (詳細資訊) 並將日誌輸出與函數程式碼做比較。​ 成功的結果會顯示區域內的 Firehose 串流清單,以及下列輸出結果:

    Calling describe_delivery_stream.

    AccessDeniedException

    Access denied test succeeded.

可用性

目前支援介面 VPC 端點的區域如下:

  • 美國東部 (俄亥俄)

  • 美國東部 (維吉尼亞北部)

  • 美國西部 (加利佛尼亞北部)

  • 美國西部 (奧勒岡)

  • 亞太區域 (孟買)

  • 亞太區域 (首爾)

  • 亞太區域 (新加坡)

  • 亞太區域 (雪梨)

  • 亞太區域 (東京)

  • 亞太區域 (香港)

  • 加拿大 (中部)

  • 加拿大西部 (卡加利)

  • 中國 (北京)

  • 中國 (寧夏)

  • 歐洲 (法蘭克福)

  • 歐洲 (愛爾蘭)

  • 歐洲 (倫敦)

  • Europe (Paris)

  • 南美洲 (聖保羅)

  • AWS GovCloud (美國東部)

  • AWS GovCloud (美國西部)

  • 歐洲 (西班牙)

  • 中東 (阿拉伯聯合大公國)

  • 亞太區域 (雅加達)

  • 亞太區域 (大阪)

  • 以色列 (特拉維夫)