ちょっと話題の記事

AWS re:Invent2013参加レポート #3 新サービス AWS CloudTrail

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンプライアンスとガバナンスのためのログ保存

AWS CloudTrailは、コンプライアンスとガバナンスのためのロギングサービスです。AWSの利用に関してAWS管理コンソールやAPIからアクセスログを取得することができます。これはエンタープライズ向けに非常に重要なサービスで、アクセスログをエビデンスとしてS3やGlacierに保存することができます。

cloudtrail

サインアップ

現在、北米など一部の地域のみの提供ですが、そう遠くない未来に東京リージョンにも登場するでしょう。以下のURLからサービス開始をします。

screenshot 2013-11-13 9.45.24

AWS CloudTrailのワークフロー

ここでは、CloudTrailのワークフローについてご紹介します。

  • AWS管理コンソール、AWS CLI、APIなどを使ってアクセスします。ユーザー操作ログが指定されたS3バケットに保存されます。
  • オプションとして、Amazon SNSによる通知を行うことができますので、Amazon SQSと連携してプログラマブルな形に扱うことが可能です。
  • Amazon S3のAPIを使って作成されたログを取り出して処理を行うことが出来ます。
  • AWS管理コンソール、AWS CLI、APIを使って設定を更新することができます。
  • オプションとして、AWS IAMを使ってログの作成や削除、開始や終了など、S3バケットに対するアクセス権を設定することができます。例えば、AWS CloudTrailへの操作をコントロールする目的で使われます。
  • オプションとして、既存のソリューションと連携することができます。これらのソリューションは、可用性、トラッキング、トラブル対応、セキュリティ分析などを提供します。

ログファイル名のフォーマット

Amazon S3にアップされるファイルは、以下のようなファイル名の規則になっています。

  • ルートのURL
  • バケット名
  • 接頭辞
  • リージョン名
  • 年(yyyy)
  • 月(mm)
  • 日(dd)
  • タイムスタンプ(ISO 8601フォーマットのUTC時間)
  • 個別識別のためのアルファベット

https://s3-us-west-2.amazonaws.com/バケット名/接頭辞/AWSLogs/アカウントID/CloudTrail/us-west-2/2013/10/25/アカウントID_CloudTrail_us-west-2_2013-10-25T22:25Z_bPlKAoJtDqSWWlTT.json.gz

利用シナリオ1:1アカウント&複数リージョン

1つのアカウントで複数のリージョンを使用している場合、それぞれのCloudTrailを設定してAmazon S3バケットに格納することができます。たまったデータへのアクセスはIAMポリシーで参照のみなど設定します。複数のリージョンからアクセスするので、クロスリージョンパーミッションを設定してください。

screenshot 2013-11-13 10.36.17

利用シナリオ2:複数アカウント&1リージョン

あるリージョンにおいて、複数のAWSアカウントから生成されるCloudTrailのログを1つのAmazon S3バケットに格納します。複数のアカウントからアクセスするので、クロスアカウントパーミッションを設定してください。

screenshot 2013-11-13 10.39.17

利用シナリオ3:複数アカウント&複数リージョン

クロスリージョンパーミッションとクロスアカウントパーミッションを設定してください。

screenshot 2013-11-13 10.39.32

対応しているAWSサービス

現在対応しているAWSサービスは以下です。

  • Amazon Elastic Compute Cloud (Amazon EC2)
  • Amazon Elastic Block Store (Amazon EBS)
  • Amazon Virtual Private Cloud (Amazon VPC)
  • Amazon Relational Database Service (Amazon RDS)
  • AWS Identity and Access Management (IAM)
  • Amazon Redshift
  • AWS Security Token Service (AWS STS)
  • AWS CloudTrail

現在サポートされているリージョンは以下です。

  • US East (Northern Virginia) Region
  • US West (Oregon) Region

レコード情報

保存されるログの中身は以下のようなフォーマットになっています。

{"Records": [
  {
    "eventVersion": "1.0",
    "userIdentity": {
      "type": "IAMUser",
      "principalId": "AIDAI2JXM4FBZZEXAMPLE",
      "arn": "arn:aws:iam::123456789012:user/Alice",
      "accountId": "123456789012",
      "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
      "userName": "Alice"
    },
    "eventTime": "2013-10-26T03:08:58Z",
    "eventSource": "iam.amazonaws.com",
    "eventName": "CreateUser",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.2.01",
    "userAgent": "aws-cli/1.1.1 Python/2.7.4 Windows/7",
    "requestParameters": {"userName": "Bob"},
    "responseElements": {"user": {
      "createDate": "Oct 26, 2013 3:08:58 AM",
      "userName": "Bob",
      "arn": "arn:aws:iam::123456789012:user/Bob",
      "path": "/",
      "userId": "AIDAIHQ2LPVSRIEXAMPLE"
    }}
  },
  ... additional entries ...
	]
}

まとめ

エンタープライズ要件で必ず上がってくるログの機能がついにリリースされました。今後益々日本国内での利用が加速すると思います。クラウドはなんとなく不安だと言うとりあえず慎重派にとどめを刺しましょうw!

参考資料

AWS CloudTrail User Guide (Version 1.0)