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

將亞馬遜資料 Firehose 串流交付到 Amazon S3 中的 Apache 冰山表格已處於預覽狀態,且可能會有所變更。

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

使用 Amazon 數據 Firehose AWS PrivateLink

您可以使用介面VPC端點 (AWS PrivateLink)保持您的 Amazon VPC 和 Amazon 數據 Firehose 件之間的流量離開 Amazon 網絡。介面VPC端點不需要網際網路閘道、NAT裝置、VPN連線或 AWS Direct Connect 連接。介面VPC端點由 AWS PrivateLink,一個 AWS 技術,使之間的私人通信 AWS 在 Amazon 中使用帶有私有 elastic network interface IPs 的服務VPC。如需詳細資訊,請參閱 Amazon Virtual Private Cloud

使用介面VPC端點 (AWS PrivateLink) 為 Firehose

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

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

建立 VPC 端點
  1. 登入 AWS Management Console 並在打開 Amazon VPC 控制台https://console.aws.amazon.com/vpc/

  2. 在VPC儀表板中選擇「端點」。

  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. 在開啟IAM主控台https://console.aws.amazon.com/iam/

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

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

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

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

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

    重要

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

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

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

創建一個 Lambda 函數 VPC
  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. 在「網路」下,選擇您VPC在上方建立端點的位置,然後選擇您在建立端點時與該端點相關聯的子網路和安全性群組。

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

  13. 選擇 測試

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

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

    Calling describe_delivery_stream.

    AccessDeniedException

    Access denied test succeeded.

支援 AWS 區域

下列區域目前支援介面VPC端點。

  • 美國東部 (俄亥俄)

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

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

  • 美國西部 (奧勒岡)

  • 亞太區域 (孟買)

  • 亞太區域 (首爾)

  • 亞太區域 (新加坡)

  • 亞太區域 (雪梨)

  • 亞太區域 (東京)

  • 亞太區域 (香港)

  • 加拿大 (中部)

  • 加拿大西部 (卡加利)

  • 中國 (北京)

  • 中國 (寧夏)

  • 歐洲 (法蘭克福)

  • 歐洲 (愛爾蘭)

  • 歐洲 (倫敦)

  • Europe (Paris)

  • 南美洲 (聖保羅)

  • AWS GovCloud (美國東部)

  • AWS GovCloud (美國西部)

  • 歐洲 (西班牙)

  • 中東 (UAE)

  • 亞太區域 (雅加達)

  • 亞太區域 (大阪)

  • 以色列 (特拉維夫)

  • 亞太區域 (馬來西亞)