Amazon CloudWatch Logs
ユーザーガイド

コンソールを使用したログデータの Amazon S3 へのエクスポート

次の例では、Amazon CloudWatch コンソールを使用して、すべてのデータを my-log-group という名前の Amazon CloudWatch Logs ロググループから my-exported-logs という名前の Amazon S3 バケットにエクスポートします。

ステップ 1: Amazon S3 バケットを作成する

CloudWatch Logs 専用に作成したバケットを使用することをお勧めします。ただし、既存のバケットを使用する場合は、ステップ 2 に進むことができます。

注記

Amazon S3 バケットは、エクスポートするログデータと同じリージョンに存在している必要があります。CloudWatch Logs では、別のリージョン内の Amazon S3 バケットへのデータのエクスポートをサポートしていません。

Amazon S3 バケットを作成するには

  1. https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。

  2. 必要に応じてリージョンを変更します。ナビゲーションバーから、CloudWatch Logs があるリージョンを選択します。

  3. [Create Bucket] を選択します。

  4. [バケット名] にバケットの名前を入力します。

  5. [リージョン] で、CloudWatch Logs データが存在するリージョンを選択します。

  6. [Create] を選択します。

ステップ 2: Amazon S3 および CloudWatch Logs へのフルアクセスを持つ IAM ユーザーを作成する

以下のステップで、必要なアクセス許可を持つ IAM ユーザーを作成します。

必要な IAM ユーザーを作成するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. [ユーザー]、[ユーザーの追加] を選択します。

  3. ユーザー名 (例: CWLExportUser) を入力します。

  4. [Programmatic access] と [AWS マネジメントコンソールへのアクセス] の両方を選択します。

  5. [Autogenerated password] または [Custom password] を選択します。

  6. [Next: Permissions] を選択します。

  7. [Attach existing policies directly (既存のポリシーを直接アタッチ)] を選択して、[AmazonS3FullAccess] および [CloudWatchLogsFullAccess] ポリシーをユーザーにアタッチします。ポリシーを検索するには、検索ボックスを使用します。

  8. [Next: Tags]、[Next: Review]、[Create user] の順に選択します。

ステップ 3: Amazon S3 バケットにアクセス許可を設定する

デフォルトでは、すべての Amazon S3 バケットとオブジェクトはプライベートです。バケットを作成した AWS アカウント (リソース所有者) のみが、バケットとそれに含まれるオブジェクトにアクセスできます。ただし、リソース所有者は、アクセスポリシーを記述することで他のリソースおよびユーザーにアクセス権限を付与することができます。

ポリシーを設定する場合は、ランダムに生成された文字列をバケットのプレフィックスとして含めることをお勧めします。これにより、意図したログストリームのみがバケットにエクスポートされます。

Amazon S3 バケットに対する権限を設定するには

  1. Amazon S3 コンソールで、ステップ 1 で作成したバケットを選択します。

  2. [Permissions (アクセス許可)]、[Add bucket policy (バケットポリシーの追加)] の順に選択します。

  3. [バケットポリシーエディター] で、以下のいずれかのポリシーを追加します。my-exported-logs を S3 バケットの名前、random-string をランダムに生成された文字列に変更します。[プリンシパル] に正しいリージョンエンドポイントを指定してください。

    • バケットが自分のアカウントにある場合は、次のポリシーを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } } ] }
    • バケットが別のアカウントにある場合は、次のポリシーを使用します。その際、前のステップで作成した IAM ユーザーを使用してステートメントを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "AWS": "arn:aws:iam::SendingAccountID:user/CWLExportUser" } } ] }
  4. [Save] を選択して、バケットに対するアクセスポリシーとして追加したポリシーを設定します。このポリシーにより、CloudWatch Logs がログデータを Amazon S3 バケットにエクスポートできるようになります。バケット所有者には、エクスポートされたすべてのオブジェクトに対する完全なアクセス権限があります。

    警告

    バケットにアタッチされているポリシーがすでに 1 つ以上ある場合は、そのポリシーに CloudWatch Logs アクセスのステートメントを追加します。バケットにアクセスするユーザーに適したアクセス許可であることを確認するために、アクセス許可の結果セットを評価することをお勧めします。

ステップ 4: エクスポートタスクを作成する

このステップでは、ロググループからログをエクスポートするためのエクスポートタスクを作成します。

CloudWatch コンソールを使用して Amazon S3 にデータをエクスポートするには

  1. [ステップ 2: Amazon S3 および CloudWatch Logs へのフルアクセスを持つ IAM ユーザーを作成する] で作成した IAM ユーザーとしてサインインします。

  2. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  3. ナビゲーションペインで [Logs] を選択します。

  4. [ロググループ] 画面でロググループの横のボタンを選択し、[アクション]、[データを Amazon S3 にエクスポートする] の順に選択します。

  5. [データを Amazon S3 にエクスポートする] 画面の [エクスポートするデータを定義する] で、[開始日] と [終了日] を使用してデータをエクスポートする時間の範囲を設定します。

  6. ロググループに複数のログストリームがある場合は、特定のストリームのロググループデータを制限するログストリームプレフィックスを指定できます。[Advanced (詳細設定)] を選択して、[ストリームプレフィックス] にログストリームプレフィックスを入力します。

  7. [Choose S3 bucket (S3 バケットの選択)] で、Amazon S3 バケットに関連付けるアカウントを選択します。

  8. [S3 バケット名] で、Amazon S3 バケットを選択します。

  9. [Advanced (詳細設定)] を選択し、[S3 バケットプレフィックス] にバケットポリシーで指定した、ランダムに生成された文字列を入力します。

  10. [データのエクスポート] を選択して、ログデータを Amazon S3 にエクスポートします。

  11. Amazon S3 にエクスポートしたログデータのステータスを表示するには、[アクション]、[Amazon S3 へのすべてのエクスポートを表示] を選択します。