CloudWatch Logs からクロスリージョンおよびクロスアカウントの Kinesis データストリームにログデータをストリーミングする方法を教えてください。

所要時間1分
0

Amazon CloudWatch ログのログデータを、別の AWS リージョンにある別の AWS アカウントの Amazon Kinesis データストリームに送信する必要があります。

解決策

CloudWatch ログイベントを複数の AWS アカウントとリージョンの Amazon Kinesis Data Streams に配信するには、サブスクリプションを使用してクロスアカウントログデータ共有を設定します。次に、AWS リージョンを指定するために、次の手順を実行します。

  1. AWS Identity and Access Management (IAM) ロールと信頼ポリシーを使用して、データ受信側アカウントにおいて、Kinesis で送信先データストリームを作成します。

    データストリームを作成するには、create-stream コマンドを使用するときに --region を指定します。このコマンドの次の例では、us-west-2 にデータストリーム YourStreamName を作成します。

    $ aws kinesis create-stream --stream-name "YourStreamName" --shard-count 1 --region us-west-2
  2. この例では、CloudWatch が us-east-1 リージョンにログを記録し、アカウント ID は 111111111111 です。その後、CloudWatch は us-west-2 にある別の AWS ユーザーの Kinesis データストリームに、AWS アカウント ID 999999999999 でログインします。

    StreamDescription.StreamStatus プロパティを確認するには、describe-stream コマンドを使用するときに --region を指定します。次のコマンドの例では、us-west-2 にあるストリーム YourStreamName をチェックしています。

    $ kinesis describe-stream --stream-name "YourStreamName" --region us-west-2

    CloudWatch ログの宛先を作成するには、 put-destination コマンドを使用します。次に、--role-arn--region を、ソース CloudWatch ログと同じリージョンに設定します。次の例では、このコマンドは us-east-1 にある受信側アカウント 999999999999 にログの宛先を作成します。

    >aws logs put-destination \
        --destination-name "testDestination" \
        --target-arn "arn:aws:kinesis:us-west-2:222222222222:stream/YourStreamName" \  
        --role-arn "arn:aws:iam::222222222222:role/YourIAMRoleName" --region us-east-1
  3. 送信側アカウントで、サブスクリプションフィルターを作成します。(たとえば、AWS アカウント ID 999999999999 など。)

  4. (オプション) データストリームが機能していることを確認するために、ログイベントのフローを検証します。

: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

関連情報

ロールに関する用語と概念

コメントはありません

関連するコンテンツ