クロスリージョンおよびクロスアカウントの Kinesis データストリームに CloudWatch Logs からログデータをストリーミングするにはどうすればよいですか?

所要時間1分
0

Amazon CloudWatch Logs から、別の AWS リージョンにある別の AWS アカウントの Amazon Kinesis データストリームにログデータを送信する必要があります。どうすればできますか?

解決方法

AWS コマンドラインインターフェイス (AWS CLI) のコマンド実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用するようにしてください

重要: CloudWatch ログイベントを別の AWS アカウントおよびリージョンの Kinesis データストリームに配信するには、サブスクリプションとのクロスアカウントログデータ共有をセットアップし、AWS リージョンを次のように指定します。

この例では、us-east-1 リージョンの CloudWatch Logs は、us-west-2 にある、別の AWS ユーザーの Kinesis データストリームに配信されます。

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

describe-stream コマンドを使用して streamDescription.StreamStatus プロパティをチェックする場合は、--region を指定します。例えば、このコマンドにより、次のように、us-west-2YourStreamName ストリームをチェックします。

>aws kinesis describe-stream --stream-name "YourStreamName" --region us-west-2

put-destination コマンドを使用して CloudWatch Logs の送信先を作成する場合は、--role-arn--region をソース CloudWatch ログと同じ AWS リージョンに設定します。例えば、このコマンドにより、次のように、us-east-1 の受信者アカウント (222222222222) にログ送信先が作成されます。

>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

2.    アカウントでサブスクリプションフィルターを作成します。

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


関連情報

ロールの用語と概念 (IAM)

AWS公式
AWS公式更新しました 2年前