Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Black Belt Tech シリーズ 2015 AWS CloudTrail & AWS Config

27,488 views

Published on

AWS Black Belt Tech Webinar 2015
AWS CloudTrail & AWS Config

次回のWebinarは、下記よりご確認ください。
http://aws.amazon.com/jp/about-aws/events/#webinar

Published in: Technology
  • Dating for everyone is here: ♥♥♥ http://bit.ly/39pMlLF ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❶❶❶ http://bit.ly/39pMlLF ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

AWS Black Belt Tech シリーズ 2015 AWS CloudTrail & AWS Config

  1. 1. AWS CloudTrail & AWS Config 2015/07/15 AWS Black Belt Tech Webinar 2015 アマゾンデータサービスジャパン株式会社 パートナー ソリューション アーキテクト 酒徳 知明
  2. 2. 2 Agenda • AWS CloudTrailについて – 概要 – AWS CloudTrailの要点 – 利用ケース • AWS Configについて – 概要 – AWS Configの要点 – 利用ケース • まとめ
  3. 3. CloudTrail
  4. 4. 4 AWS CloudTrailとは ユーザによる APIの発行 各リージョンの AWSリソースの 呼び出し CloudTrailが APIコールを ロギング ユーザの操作 を管理
  5. 5. 5 CloudTrailの特徴 • 概要 – AWSアカウントの操作をロギングするサービス – 管理コンソール、コマンドライン、3rd party等APIコールされるイベントが 対象ロギングの対象 – S3にロギングデータを保存 – SNS(Simple Notification Service)で通知可能 – CloudTrail 自体は無料(※別途Amazon S3 / SNSの使用料金が必要) • ユースケース – コンプライアンス準拠 – リソースのライフサイクル管理 – 運用上のトラブルシューティング – セキュリティ面の分析
  6. 6. 6 CloudTrailでロギング可能なサービス http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_supported_services.html Compute • Amazon Elastic Compute Cloud (EC2) • Auto Scaling • Elastic Load Balancing • Amazon EC2 Container Service • AWS Lambda Database • Amazon Relational Database Service • Amazon ElastiCache • Amazon Redshift • Amazon DynamoDB Deployment and Management • AWS Elastic Beanstalk • AWS OpsWorks • AWS CloudFormation • AWS CodeDeploy • AWS CodePipeline • Amazon API Gateway Storage and Content Delivery • AWS Storage Gateway • Amazon Glacier • Amazon CloudFront Networking • Amazon Virtual Private Cloud • AWS Direct Connect • Amazon Route 53 Administration and Security • AWS Identity and Access Management • AWS CloudTrail • Amazon CloudWatch • AWS Key Management Service • AWS Security Token Service • AWS CloudHSM • AWS Config • AWS Directory Service Analytics • Amazon Elastic MapReduce • Amazon Kinesis • AWS Data Pipeline Enterprise Applications • Amazon WorkDocs • Amazon WorkSpaces Application Services • Amazon Simple Queue Service • Amazon Simple Workflow Service • Amazon Elastic Transcoder • Amazon CloudSearch • Amazon Simple Email Service Mobile Services • Amazon Simple Notification Service ※2015年7月15日時点
  7. 7. 7 AWS CloudTrailの設定 S3 / SNSの設定 CloudWatch Logs の設定
  8. 8. 8 ログファイルの保存先 • ログファイルは命名規則の元ある特定のパスで保存されます • S3 バケットに約 5 分ごとにログファイルを送信します。 • そのアカウントに対して API の呼び出しがない場合は、ログファ イルを送信しません。
  9. 9. 9 AWS CloudTrailによりロギングされるイベント API call Event Non-API call Event • サポート サービスから発行されるAPI  StartInstances  CreateKeyPair • ユーザのサインイン アクティビテイ  AWS マネジメント コンソール  AWS ディスカッション フォー ラム
  10. 10. 10 CloudTrailイベントから取得できる情報 • 誰がAPIコールを発行したのか • いつAPIコールが発行されたのか • どのAPIコールが発行されたのか • どのAWSリソースから発行されたのか • どのAWSリソースに対して発行されたのか
  11. 11. 11 誰がAPIコールを発行したのか① IAMユーザ “Bob”のユーザ情報 "userIdentity“: { "accessKeyId":"AKEXAMPLE123EJVA", "accountId":“123456789012", "arn":"arn:aws:iam::123456789012:user/Bob", "principalId":"AIEXAMPLE987ZKLALD3HS", "type":"IAMUser", "userName":“Bob" }
  12. 12. 12 誰がAPIコールを発行したのか② フェデレーションユーザ “Alice”のユーザ情報 "userIdentity": { "type":"FederatedUser", "principalId":"123456789012:Alice", "arn":"arn:aws:sts::123456789012:federated-user/Alice", "accountId":"123456789012", "accessKeyId":"ASEXAMPLE1234WTROX8F", "sessionIssuer":{ "type":"IAMUser", "accountId":"123456789012", "userName":“Bob" } }
  13. 13. 13 いつAPIコールが発行されたのか どのAPIコールが発行されたのか ISO8601フォーマットでの記載 "eventTime":"2014-11-29T05:58:13Z“ APIコールの名前とターゲット情報を記載 "eventSource":"signin.amazonaws.com" "eventName":"ConsoleLogin"
  14. 14. 14 どのAWSリソースから発行されたのか リクエスターのIPアドレス、APIが発行されたリージョン の情報を記載 "awsRegion":"us-east-1", "sourceIPAddress":"ec2.amazonaws.com"
  15. 15. 15 蓄積したJSONファイルの扱い方 可視化 (長期) 文字列検索 (中期) アラート (短期)
  16. 16. 16 CloudWatch Logs Metric Filter の利用 • CloudTrail と CloudWatch Logs の連携 – CloudTrailのログをJSON形式でCloudWatch Logsに転送 – アカウント内でコールされた特定のAPIを監視し、呼ばれたと きに電子メール通知を受けることが可能 CloudTrail CloudWatch Logs CloudWatch Logs Metric Filter
  17. 17. 17 CloudWatch Logs Metric Filter の利用 • 特定文字列のエントリ頻度によりアラーム作成が可能
  18. 18. 18 Metric Filters サンプル • アカウントrootログインの監視 { ($.eventName = "ConsoleLogin") && ($.userIdentity.type = "Root") } • 認証失敗の監視 {$.errorCode = "AccessDenied" || $.errorCode = "UnauthorizedOperation"} • 特定インスタンスタイプのEC2が作成されたかの監視 {$.eventName = "RunInstances" && ($.requestParameters.instanceType = “*.8xlarge" || $.requestParameters.instanceType = “*.4xlarge"} • セキュリティグループ変更の監視 {($.eventName = "AuthorizeSecurityGroupIngress") || ($.eventName = "AuthorizeSecurityGroupEgress") || ($.eventName = "RevokeSecurityGroupIngress" ||($.eventName = "RevokeSecurityGroupEgress") || ($.eventName = "CreateSecurityGroup") || ($.eventName = "DeleteSecurityGroup")}
  19. 19. 19 CloudWatchアラーム CloudFormationテンプレート http://aws.typepad.com/aws_japan/2015/03/cloudtrail-integration-with-cloudwatch-in-four-more-regions.html CloudFormationをつかったメトリック フィルタの自動作成
  20. 20. 20 AWS CloudTrailの設定
  21. 21. 21 AWS CloudTrail API Activity Lookup • CloudTrailコンソールまたはAWS SDK, AWS CLIからAPIアクティ ビティを検索する機能 • 東京リージョンでも利用可能 • CloudTrailが有効にするだけで自 動で利用可能 • 最新の7日間のAPIアクティビ ティの検索 http://aws.typepad.com/aws_japan/2015/03/new-aws-api-activity-lookup-in-cloudtrail.html
  22. 22. 22 AWS CloudTrail API Activity Lookup $ aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances --start-time 2015-05-16 --end-time 2015-05-16
  23. 23. 23 API Activity Lookupの制限事項① http://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-supported-services.html Compute • Amazon Elastic Compute Cloud (EC2) • Auto Scaling • Elastic Load Balancing • Amazon EC2 Container Service • AWS Lambda Database • Amazon Relational Database Service • Amazon ElastiCache • Amazon Redshift • Amazon DynamoDB Deployment and Management • AWS Elastic Beanstalk • AWS OpsWorks • AWS CloudFormation • AWS CodeDeploy • AWS CodePipeline • Amazon API Gateway Storage and Content Delivery • AWS Storage Gateway • Amazon Glacier • Amazon CloudFront Networking • Amazon Virtual Private Cloud • AWS Direct Connect • Amazon Route 53 Administration and Security • AWS Identity and Access Management • AWS CloudTrail • Amazon CloudWatch • AWS Key Management Service • AWS Security Token Service • AWS CloudHSM • AWS Config • AWS Directory Service • AWS Management Console Sign-in Service Analytics • Amazon Elastic MapReduce • Amazon Kinesis • AWS Data Pipeline Enterprise Applications • Amazon WorkDocs • Amazon WorkSpaces Application Services • Amazon Simple Queue Service • Amazon Simple Workflow Service • Amazon Elastic Transcoder • Amazon CloudSearch • Amazon Simple Email Service Mobile Services • Amazon Simple Notification Service ※2015年7月15日時点
  24. 24. 24 API Activity Lookupの制限事項② • Time Range検索 – 過去 7 日間の AWS アカウント内 のリソースの作成、変更、削除に 関する API アクティビティ • Filter検索 – 検索できる属性の制限 • User name • Event name • Resource type • Resource name
  25. 25. 25 Amazon CloudSearch, Amazon Elastic Beanstalk https://medium.com/aws-activate-startup-blog/searching-cloudtrail-logs-easily-with-amazon-cloudsearch-2d716e23efee CloudTrail Amazon SNS Topics Amazon SQS Queue AWS ElasticBeanstalk Worker Role Amazon S3 Backet Amazon CloudSearch ① ② ③ ④ ⑤ ⑥ ⑦
  26. 26. 26 AWS Elastic Beanstalk Worker Tier • SQSに登録されたタスクを 非同期処理するTier • SQSメッセージは自動的に HTTPエンドポイントにPOST • 200 OKならDelete Message • エラー応答ならリトライ Webアプリを実装するだけでSQSを使った非同期処理Workerを実装
  27. 27. 27 Amazon CloudSearch, Amazon Lambda CloudTrail Amazon Lambda Amazon S3 Bucket Amazon CloudSearch ① ② ③
  28. 28. 28 ElasticSearch, Kibana, Amazon Lambda CloudTrail ElasticSearchAmazon S3 Backet ① ② ③ ④ LogstashAmazon Lambda
  29. 29. 29 for(var i = 0; i < records.length; i++){ var record = records[i]; var header = { "index":{ "_index": ES_INDEX, "_type": ES_TYPE, "_id": record.eventTime + "-" + record.requestID } }; var searchRecord = { "usertype" : record.userIdentity.type, "arn" : record.userIdentity.arn, "username" : record.userIdentity.userName, "eventtime" : record.eventTime, "eventsource" : record.eventSource, "eventname" : record.eventName, "awsregion" : record.awsRegion, "sourceipaddress" : record.sourceIPAddress, "eventid" : record.eventID, "logfilename" : logFileName }; searchRecords.push(header); searchRecords.push(searchRecord); }; Lambda Code s3.getObject({ Bucket : bucket, Key : key }, function(err,data) { if(err){ context.done('error','error getting file' + err); } else { var contentType = data.ContentType; var contentEncoding = data.ContentEncoding; if (contentType === "application/json" && contentEncoding === "gzip") { var logFileName = key.substr(key.lastIndexOf("/") + 1); var buf = data.Body; zlib.gunzip(buf, function(_, dezipped) { var json = JSON.parse(dezipped.toString('utf-8')); sendToES(context,region,logFileName,json); }); } } }); }; //bulk send to Elasticsearch function sendToES(context,region,logFileName,json){ var records = json.Records; var searchRecords = [];
  30. 30. 30 蓄積したJSONファイルの扱い方 可視化 (長期) 文字列検索 (中期) アラート (短期)
  31. 31. 31 CloudTrail パートナー ソリューション コンサルティング・パートナーテクノロジー・パートナー
  32. 32. 32 Splunk Dashboard
  33. 33. 33 AWS Config
  34. 34. AWS Configとは • AWSリソースのレポジトリ情報を取得し、リソースの 設定履歴を監査、リソース構成の変更を通知すること ができるフルマネージドサービス • ユースケース • セキュリティ分析:Am I safe? • 監査・コンプライアンス:Where is the evidence? • 変更管理:What will this change affect? • トラブルシューティング:What has changed? • ディスカバリー:What resources exist?
  35. 35. 変更・更新記録構成変更 ヒストリ ストリーム スナップショット (ex. 2014-11-05) AWS Config
  36. 36. 36 AWS Config Configuration Stream Configuration SnapshotConfiguration History • リソースが作成、変更、また は構成項目を削除されるたび に、作成され、構成ストリー ムに追加される • SNSトピック連携可能 • あるポイントでのコンフィグ レーション アイテムの集合 • 自動で定期的あるいは変更ト リガで作成され、Amazon S3 にエクスポートされる • 設定履歴は、任意の期間にお ける各リソースタイプの構成 要素の集合 • リソースの設定履歴を、指定 したS3バケットに保存 Snapshot @ 2014-11-12, 2:30pm
  37. 37. 37 AWS Configが対応しているAWSリソース • 現在AWS Configが対応しているのは下記4サービス Amazon EC2 Instance, ENI... Amazon EBS Volumes AWS CloudTrail Amazon VPC VPC, Subnet... ※2015年7月15日時点
  38. 38. 38 AWS Configで管理できるAWSリソース Resource Type Resource Amazon EC2 EC2 Instance EC2 Elastic IP (VPC only) EC2 Security Group EC2 Network Interface Amazon EBS EBS Volume Amazon VPC VPCs Network ACLs Route Table Subnet VPN Connection Internet Gateway Customer Gateway VPN Gateway AWS CloudTrail Trail
  39. 39. 39 リレーションシップ • アカウント内のAWSリソース間の関係 • 双方向の依存関係が自動的に割り当てられる Example: セキュリティ グループ“sg-10dk8ej” とEC2 インスタンス “i-123a3d9” は互いに関連関係にあります
  40. 40. 40 リレーションシップ Resource Relationship Related Resource CustomerGateway is attached to VPN Connection Elastic IP (EIP) is attached to Network Interface is attached to Instance Instance contains Network Interface is attached to ElasticIP (EIP) is contained in Route Table is associated with Security Group is contained in Subnet is attached to Volume is contained in Virtual Private Cloud (VPC) InternetGateway is attached to Virtual Private Cloud (VPC) … …. ….. http://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html
  41. 41. AWS Configリソース検索
  42. 42. 選択リソースの情報 構成詳細 リレーション 変更
  43. 43. リソース構成変更例 • インスタンスタイプの変更(m3.xlarge → m3.medium) • EBSボリュームの追加 EC2 m3.xlarge EC2 m3.medium 30GB
  44. 44. リソース情報(構成詳細)
  45. 45. リソース情報(リレーション)
  46. 46. リソース情報(変更)
  47. 47. 47 ロギングするサービスの選択 • 構成変更をロギングするサービスを選択できる ようになりました
  48. 48. 48 AWS Config リレーションシップ Security Group EIP ENI EBSVPC Route Table NACL SubnetVPN IGW CGW EC2
  49. 49. 49 AWS Configから見るリソースのリレーション $ aws configservice get-resource-config-history --resource-type AWS::EC2::Instance --resource-id i-cbe78721 --region us-east-1 { "configurationItems": [ { "configurationItemCaptureTime": 1427432204.542, "resourceCreationTime": 1417001136.0, "availabilityZone": "us-east-1c", "tags": { "Name": "cwl-sqlserver" }, "resourceType": "AWS::EC2::Instance", "resourceId": "i-cbeXXXXX", "configurationStateId": "547", "relatedEvents": [], "relationships": [ { "resourceType": "AWS::EC2::EIP", "resourceId": "eipalloc-e6dcXXXX", "relationshipName": "Is attached to ElasticIp" }, { "resourceType": "AWS::EC2::NetworkInterface", "resourceId": "eni-8270XXXX", "relationshipName": "Contains NetworkInterface" }, { "resourceType": "AWS::EC2::SecurityGroup", "resourceId": "sg-53f9XXXX", "relationshipName": "Is associated with SecurityGroup" }, { "resourceType": "AWS::EC2::Subnet", "resourceId": "subnet-a1dbXXXX", "relationshipName": "Is contained in Subnet" }, { "resourceType": "AWS::EC2::Volume", "resourceId": "vol-592aXXXX", "relationshipName": "Is attached to Volume" }, ・・・・
  50. 50. 50 AWS Config リレーションシップ Security Group wfront-6171 wfront-6172 wfront-6173 ・ ・ ・ AWS Config cli/sdk/metadata cli/sdk/metadata cli/sdk/metadata
  51. 51. 51 AWS Configからのスナップショットの取得 $ aws configservice deliver-config-snapshot --delivery-channel-name default --region us-east-1 { "configSnapshotId": "5b662925-a6e0-4d19-a156-0151d932XXXX" } $ aws configservice describe-delivery-channel-status --region us-east-1 { "DeliveryChannelsStatus": [ { "configStreamDeliveryInfo": { "lastStatusChangeTime": 1431767053.909, "lastStatus": "SUCCESS" }, "configHistoryDeliveryInfo": { "lastSuccessfulTime": 1431699583.504, "lastStatus": "SUCCESS", "lastAttemptTime": 1431699583.504 }, "configSnapshotDeliveryInfo": { "lastSuccessfulTime": 1431769523.567, "lastStatus": "SUCCESS", "lastAttemptTime": 1431769523.567 }, "name": "default"
  52. 52. 52 AWS Config パートナー
  53. 53. 53 Logstorageによる可視化
  54. 54. 54 まとめ • AWS CloudTrailはユーザのオペレーションを記録 • AWS Configはユーザオペレーションにより変更のあっ たAWSリソースを記録 • AWS CloudTrailもAWS ConfigもJSONで履歴を管理す るため、用途に応じた管理が必要
  55. 55. 55 Q&A 次回Webinarのお申し込み http://aws.amazon.com/jp/event_schedule/
  56. 56. 56 Webinar資料の配置場所 • AWS クラウドサービス活用資料集 – http://aws.amazon.com/jp/aws-jp-introduction/
  57. 57. 57 公式Twitter/Facebook AWSの最新情報をお届けします @awscloud_jp 検索 最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを 日々更新しています! もしくは http://on.fb.me/1vR8yWm
  58. 58. AWS運用コミュニティ ~クラウドによる、クラウドのための、クラウド運用管理~ AWS上に構築されたシステムの 運用管理のベストプラクティスを集約! http://aws.typepad.com/aws_partner_sa/2015/ 06/aws-ops.html@opsjaws
  59. 59. 59 ご参加ありがとうございました。

×