での Amazon Data Firehose の使用 AWS PrivateLink - Amazon Data Firehose

Amazon Data Firehose は、以前は Amazon Kinesis Data Firehose と呼ばれていました。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

での Amazon Data Firehose の使用 AWS PrivateLink

Amazon Data Firehose のインターフェイス VPC エンドポイント (AWS PrivateLink)

インターフェイス VPC エンドポイントを使用して、Amazon VPC と Amazon Data Firehose 間のトラフィックが Amazon ネットワークから離れないようにすることができます。インターフェイス VPC エンドポイントには、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続は必要ありません。インターフェイス VPC エンドポイントは AWS PrivateLink、Amazon VPC 内のプライベート IP を備えた Elastic Network Interface を使用して AWS サービス間のプライベート通信を可能にする AWS テクノロジーである を利用しています。 IPs 詳細については、「Amazon Virtual Private Cloud」を参照してください。

Amazon Data Firehose でのインターフェイス VPC エンドポイント (AWS PrivateLink) の使用

開始するには、Amazon VPC リソースからの Amazon Data Firehose トラフィックがインターフェイス VPC エンドポイントを経由し始めるために、インターフェイス VPC エンドポイントを作成します。エンドポイントを作成するときに、Amazon Data Firehose へのアクセスを制御するエンドポイントポリシーをアタッチできます。ポリシーを使用して VPC エンドポイントから Amazon Data Firehose へのアクセスを制御する方法の詳細については、「VPC エンドポイントによるサービスへのアクセスの制御」を参照してください。

次の例は、VPC で AWS Lambda 関数をセットアップし、VPC エンドポイントを作成して、関数が Amazon Data Firehose サービスと安全に通信できるようにする方法を示しています。この例では、Lambda 関数が現在のリージョンの Firehose ストリームを一覧表示するが、Firehose ストリームを記述しないことを許可するポリシーを使用します。

VPC エンドポイントの作成
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/vpc/ で Amazon VPC コンソールを開きます。

  2. VPC ダッシュボードで、[エンドポイント] を選択します。

  3. [エンドポイントの作成] を選択します。

  4. サービス名のリストで、[com.amazonaws.your_region.kinesis-firehose] を選択します。

  5. エンドポイントを作成する VPC および 1 つ以上のサブネットを選択します。

  6. エンドポイントに関連付ける 1 つ以上のセキュリティグループを選択します。

  7. [ポリシー] で [カスタム] を選択し、次のポリシーを貼り付けます。

    { "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. 左側のペインから、[Roles (ロール)] を選択してから、[Create role (ロールの作成)] をクリックします。

  3. [Select type of trusted entity (信頼されたエンティティのタイプの選択)] で、デフォルトの選択である [AWS のサービス] をそのままにします。

  4. [このロールを使用するサービスを選択] の下で、[Lambda] を選択します。

  5. [Next: Permissions (次へ: アクセス許可)] を選択します。

  6. ポリシーのリストで、AWS LambdaVPCAccessExecutionRole および AmazonDataFirehoseReadOnlyAccess という名前の 2 つのポリシーを探して追加します。

    重要

    以下に例を示します。本番環境では、より厳格なポリシーが必要になる場合があります。

  7. [Next: Tags] (次へ: タグ) を選択します。この演習の目的を達成するにはタグは不要です。[次へ: レビュー] を選択します。

  8. ロールの名前を入力し、[ロールの作成] を選択します。

VPC 内に Lambda 関数を作成します。
  1. https://console.aws.amazon.com/lambda/ で AWS Lambda コンソールを開きます。

  2. 関数の作成 を選択します。

  3. Author from scratch(製作者を最初から) を選択します。

  4. 関数の名前を入力し、Runtime Python 3.9 以上に設定します。

  5. [Permissions (アクセス許可)] で、[実行ロールの選択または作成] を選択します。

  6. [実行ロール] リストから [既存のロールを使用する] を選択します。

  7. [既存のロール] リストで、上記で作成したロールを選択します。

  8. 関数を作成 を選択します。

  9. [関数コード] に次のコードを貼り付けます。

    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. [基本設定] で、タイムアウトを 1 分に設定します。

  11. [ネットワーク] で、上記でエンドポイントを作成した VPC を選択し、作成時にエンドポイントに関連付けたサブネットとセキュリティグループを選択します。

  12. ページの上部付近にある [Save (保存)] を選択します。

  13. [テスト] を選択します。

  14. イベント名を入力し、[Create (作成)] を選択します。

  15. [テスト] を再度選択します。これにより、関数が実行されます。実行結果が表示されたら [詳細] を展開し、ログ出力を関数コードと比較します。成功すると、リージョン内の Firehose ストリームのリストと、次の出力が表示されます。

    Calling describe_delivery_stream.

    AccessDeniedException

    Access denied test succeeded.

可用性

現在、インターフェイス VPC エンドポイントは次のリージョン内でサポートされています。

  • 米国東部 (オハイオ)

  • 米国東部 (バージニア北部)

  • 米国西部 (北カリフォルニア)

  • 米国西部 (オレゴン)

  • アジアパシフィック (ムンバイ)

  • アジアパシフィック (ソウル)

  • アジアパシフィック (シンガポール)

  • アジアパシフィック (シドニー)

  • アジアパシフィック (東京)

  • アジアパシフィック (香港)

  • カナダ (中部)

  • カナダ西部 (カルガリー)

  • 中国 (北京)

  • 中国 (寧夏)

  • 欧州 (フランクフルト)

  • 欧州 (アイルランド)

  • 欧州 (ロンドン)

  • 欧州 (パリ)

  • 南米 (サンパウロ)

  • AWS GovCloud (米国東部)

  • AWS GovCloud (米国西部)

  • 欧州 (スペイン)

  • 中東 (アラブ首長国連邦)

  • アジアパシフィック (ジャカルタ)

  • アジアパシフィック (大阪)

  • イスラエル (テルアビブ)