Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20160825_AWSを利用する上で知っておくべきセキュリティ事項とセキュリティ関連サービ...

Classmethod
August 29, 2016
3.6k

20160825_AWSを利用する上で知っておくべきセキュリティ事項とセキュリティ関連サービスの紹介(アマゾン ウェブ サービス ジャパン株式会社)

Classmethod

August 29, 2016
Tweet

More Decks by Classmethod

Transcript

  1. ⾃⼰紹介 ⼩梁川 貴史(こやながわ たかし) • パートナーソリューションアーキテクト – APNさまへの技術⽀援 • アーキテクチャの検討⽀援やレビューなど

    • 経歴 – ソフトハウスにて、開発とSI業務を経験 – 電機メーカーにて、⾃社Webサービスの設計から運⽤まで経験 • AWSのユーザとして4年半、1000台を超えるインスタンス環境での開発・運⽤ • 好きなサービス – Cloudwatch events – AWS IoT
  2. 最初に AWS のセキュリティモデルを知っていますか?? 責任共有モデル AWS の基盤サービス コンピュー ティング ストレージ データベース

    ネットワー キング AWS グローバ ルインフラスト ラクチャ リージョン アベイラビリ ティーゾーン エッジロケー ション クライアント側で のデータ暗号化 サーバー側での データ暗号化 ネットワークトラ フィックの保護 プラットフォーム、アプリケーション、アイデンティティ &アクセス管理 オペレーティングシステム、ネットワーク、ファイア ウォール構成 お客様のアプリケーションとコンテンツ お客様 顧客はクラウド内 のセキュリティに 責任を持ちます。 AWS はクラウドの セキュリティに 責任を持ちます。
  3. 守るべき資産と、敵は誰なのか? • 守るべき資産の特定がセキュリティ設計の第⼀歩 • 外部からの攻撃対策は必須だが、情報漏えいに関しては内部犯⾏が 80%と⾔われいる。 – 悪意のある内部ユーザ • 例えば会社に不満など。

    – 悪意のない内部ユーザ • 開発の効率化をしたいための緩いルールやデータの持ち出し 環境/サーバ/データへの適切なNW/アクセス設計 特に内部犯行むけ:誰が/いつ/どこから/何を などのログ設計
  4. セキュリティ? ⾮機能要件で開発者視点で抜けがち、可能な限り⾃動化 • 開発 – 暗号化適切なサービスの利⽤ – Keyやパスワードの置き場所・管理⽅法 • 更新やrevokeを機能として考慮

    – 監査の⾃動化の仕組みを検討(強く推奨!) • 運⽤ – パッチ対応 – バージョンアップ – パスワードの定期更新 • 社内ルール – ⾃社のセキュリティルールを確認 – 運⽤ルールを作成する • AWSアカウントの持ち⽅:プロジェクト単位、開発・商⽤環境で分けるなど • IAMなども、⾒て分かるようなユーザを作成すると便利
  5. お客様が守る情報の例: 開発者の皆様がやってはイケないこと:Hackされる危険性 • access/security keyを公開 – 意図はなくとも、gitなどで誤って公開してしまう • 意図のないportの全開放(とくにSSH) •

    ユーザ名/passwordが同⼀の設定(M/Wユーザなど) – 合わせ技でサーバがハックされる可能性 • AWSから来るAbuse Reportメールの無視 – EC2をhackされ、マルウェアを導⼊されたケース – メールサービス利⽤時のバウンスの⼤量発⽣したケース など 機能停止や アカウント停止 abuse report発生 のもと 身に覚えがない請求
  6. セキュリティにおいて重要なサービス Areas Key Services データ保護 権限管理 インフラ保護 検知 Elastic Load

    Balancing Amazon EBS Amazon S3 Amazon RDS AWS Key Management Service MFA token IAM Amazon VPC AWS CloudTrail AWS Config CloudWatch IAM
  7. AWS Identity and Access Management (IAM) • 特徴 (http://aws.amazon.com/jp/iam/) –

    AWS リソースへのきめ細かなアクセス制御 – 認証情報の利⽤状況を⼀⽬で把握できるレポート機能 – 社内ディレクトリとの統合も可能 – ウェブ ID プロバイダーを使った、モバイルアプリケー ションへのアクセスコントロールの管理 – 権限の⾼いユーザーに対する多要素認証の利⽤( Multi- Factor Authentication) • 価格体系 (http://aws.amazon.com/jp/iam/pricing/) – IAMの利⽤⾃体は全て無料 AWS サービスおよびリソースへのアクセスを安全にコントロール 多様なMFAデバイスをサポート IAMの命名即検討も重要
  8. AWS Key Management Service • 特徴 (http://aws.amazon.com/jp/kms/) – 暗号鍵の管理を⼀元化 –

    鍵の機密性、可⽤性を確保 – アクセスニーズに合わせて⾃動的にスケール – 様々なAWSサービスとのインテグレーション – 鍵の持ち込みにも対応 https://aws.amazon.com/jp/blogs/news/new-bring-your- own-keys-with-aws-key-management-service/ • 価格体系 (http://aws.amazon.com/jp/kms/pricing/) – 1つの鍵につき⽉間$1で利⽤可能 – APIリクエストは10,000リクエストごとに$0.03 – 20,000リクエストまでは無料 フルマネージド暗号鍵管理サービス Customer Master Key(s) Data Key 1 Amazon S3 Object Amazon EBS Volume Amazon Redshift Cluster Data Key 2 Data Key 3 Data Key 4 Custom Application AWS KMS New KMSのKeyはRegion単位
  9. AWS WAF CloudFront上で動作し、APIで管理できるWeb Application Firewall • 特徴(https://aws.amazon.com/jp/waf/details/) – IP/String/SQLを条件に allow/denyの設定

    が可能 – APIを利⽤して完全管理できる – CloudWatch と統合されており、カスタム アラームを簡単に設定可能 – request body/XSSにも対応 • 価格(https://aws.amazon.com/jp/waf/pricing/) – Web ACL あたり 5 USD/⽉ – Rule あたり 1 USD/⽉ – 100万 web request あたり 0.6 USD 料⾦はCloudFrontの料⾦表に追加される EC2 EC2 API /GUI で設定変更可能 悪意のある ユーザ 管理者 通常の ユーザ IP/query/SQLインジェ クションの組み合わせ でサイトを守る
  10. Amazon CloudWatch • 特徴 (http://aws.amazon.com/jp/cloudwatch/) – AWSリソースの死活、性能、ログ監視 – 取得メトリックスのグラフ化 –

    各メトリックスに対してアラーム作成 • 価格体系 (http://aws.amazon.com/jp/cloudwatch/pricing/) – 基本モニタリング(5分間隔)は無料 – (利⽤する場合) 詳細モニタリング – (利⽤する場合)カスタムメトリックス、APIリ クエスト、アラーム、ログ等 AWSの各種リソースを監視するサービス
  11. CloudWatch Logsの特徴 ü OS、アプリケーションログ中のエラー・警告メッセージを監視 ü 閾値を設定することで、SNSとの連携が可能 ü エージェント経由でメッセージをCloudWatch Logsに集約 ü

    ログデータの保存期間は設定可能(※永久保存も選択可能) http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html
  12. AWS Config • 特徴 (http://aws.amazon.com/jp/config/) – AWSリソースの変更履歴、構成情報を管理 – アカウント内のAWSリソース間の関係をリ レーションシップとして関連付ける

    • 価格体系 (http://aws.amazon.com/jp/config/pricing/) – 1 回の設定項⽬の記録につき 0.003 USD – ログが保存されるAmazon S3の料⾦ – Amazon SNSの料⾦ 構成変更の通知、構成履歴を記録する構成管理マネージドサービス
  13. AWS CloudTrail • 特徴 (http://aws.amazon.com/jp/cloudtrail/ – AWSマネジメントコンソール、コマンドライ ン、サードパーティ製品等AWS APIの呼び出 しを記録

    – セキュリティの分析、リソース変更の追跡、 およびコンプライアンスの監査に利⽤ • 価格体系 (http://aws.amazon.com/jp/cloudfront/pricing/) – AWS CloudTrail⾃体の料⾦は無料 – Amazon S3、Amazon SNSの標準の使⽤料 ⾦が必要 AWS上のAPI操作を記録するサービス AWS CloudTrail サポートサービス⼀覧 http://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/w hat_is_cloud_trail_supported_services.html
  14. AWS CloudTrailによりロギングされるイベント API call Event Non-API call Event • サポート

    サービスから発⾏されるAPI v StartInstances v CreateKeyPair • ユーザのサインイン アクティビテイ v AWS マネジメント コンソール v AWS ディスカッション フォー ラム
  15. 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 = []; zip用 node moduleが必要
  16. 例えば監査の効率化 CloudTrail Amazon Lambda Amazon S3 Bucket Amazon SNS ①

    CloudTrail 監査用のアカウント/バケットを作成することで、監視/可視化を一元管理 Amazon ElasticSearch 監査 定義 https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/recei ve-cloudtrail-log-files-from-multiple-regions.html
  17. 最後に • セキュリティについては広く継続的な知識習得や情報収集が重要。 AWSはセキュリティを重要視しておりますので、Managed Serviceなどを利⽤ することでセキュリティ開発・運⽤負荷を下げることができます。 – 継続的なAWSの知識習得にはWebinar/Black beltを有効利⽤下さい。 •

    https://aws.amazon.com/jp/about-aws/events/webinars/ • 本⽇のテーマに近いもの – 8/31(⽔) ⾦融機関向け AWS セキュリティ・FISC 安全対策基準への対応 – 8/31(⽔) AWS CloudTrail & AWS Config – 9/21(⽔) AWS Black Belt Online Seminar AWS Identity and Access Management (IAM) – 9/28(⽔) AWS Black Belt Online Seminar AWS Key Management Service (KMS) • ⼀般知識としての暗号化通信の状況を知る – 2010年問題 1024=>2048 – 例えば、heartbeat問題/TLS1.2移⾏など、重⼤なセキュリティissueと⾃分たちのシステムとの関係を正 しく理解する
  18. 是⾮読みましょう • AWSセキュリティ ベストプラクティス – http://media.amazonwebservices.com/jp/wp/AWS_Security_Best_Practices.pdf • AWSセキュリティ監査のガイドライン – http://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-security-audit-guide.html

    • AWS アクセスキーを管理するためのベストプラクティス – http://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-access-keys-best-practices.html • AWS 運⽤チェックリスト – http://media.amazonwebservices.com/AWS_Operational_Checklists.pdf