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-2 で YourStreamName ストリームをチェックします。
>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)