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.

JAWS-UG初心者支部#2 AWSでアカウント作ったら最初にやるべきこと

3,516 views

Published on

JAWS-UG初心者支部#2 AWSでアカウント作ったら最初にやるべきこと

Published in: Technology
  • Be the first to comment

JAWS-UG初心者支部#2 AWSでアカウント作ったら最初にやるべきこと

  1. 1. AWSでアカウント作ったら 最初にやるべきこと JAWS-UG 初心者支部 #2 2015/7/17(2015/8/25更新) Nobuhiro Nakayama
  2. 2. 2 cat << EOF > me.json { “name” : “Nobuhiro Nakayama”, “company” : “UCHIDAYOKO CO., LTD.”, “favorite aws services” : [ “Directory Service”, “IAM”, “CLI” ], “twitter” : ”@domokun70cm”, “facebook” : ” nobuhiro.nakayama.12”, “certifications” : [ “AWS Certified Solutions Architect-Professional”, “AWS Certified SysOps Administrator-Associate”, “Microsoft Certified Solutions Expert Server Infrastructure / SharePoint”, “IPA Network Specialist”, “IPA Information Security Specialist” ] } EOF
  3. 3. 質問 • AWSを使い始めるにあたり、こんなことを思ったことはないでしょうか? • 「使い始める前にやっておいた方がいいことは無いのだろうか?」 • 「いきなり使い始めて大丈夫?」 3
  4. 4. 私個人の見解 • (本番環境であれば)事前にやるべきことがあります。 • 主に、「セキュリティ」「請求(コスト)」に関することです。 • 今日ご紹介することのうち既に実施していることがいくつあるか、確認してみましょう。 • もちろん、要件によっては不要なものもあります。 • 各サービスで個別にやるべきことは別途ご確認ください。 • 例)SES → 上限緩和申請 4
  5. 5. 今日お伝えしたいこと 1. どのサービスを利用するかに関係なく、 全てのAWS利用者が知っておくべきAWSアカウントの機能や設定 2. 設定を怠った場合のリスク • 【注意】本日は、「何を行うべきか」「なぜ行うべきか」はお話ししますが、 どのように行えばいいか(設定手順)はお話ししません。 • ご自身で調べてみてください。 • Develepers.IOにだいたい書いてる 5
  6. 6. やるべきこと(異論は認める) • セキュリティ 1. CloudTrailの有効化 2. RootアカウントへのMFA設定 3. IAMユーザおよびIAMグループの作成 • IAM users sign-in linkのエイリアス(別名)を設定 4. パスワードポリシーの設定 • 請求 5. IAMユーザによる請求情報へのアクセスの許可(IAM User Access to Billing Information) 6. 支払通貨(Local Currency Preference)の変更 7. 請求関連の通知設定(Preferences) 8. Budget(予算)の設定 • その他 9. 連絡先(Alternate Contacts)およびTrusted Advisorの有効化 10.Configの有効化 11.秘密の質問の設定 6
  7. 7. 【PR】ちなみに・・・ • 本日の内容はCLI専門支部 #11の内容(ハンズオン)がベースになっています。 • CLI専門支部を主催する波田野さん、いつもありがとうございます! • ハンズオン以降の新機能や、なぜその設定を行うのか、などを追加 • ご興味のある方は、CLI専門支部にも是非お越しください! • 隔週開催! • 次回は祝日スペシャル • JAWS-UG CLI専門支部 #24 - 祝日スペシャル (Sphinx x S3静的Webサイトホスティング) • https://jawsug-cli.doorkeeper.jp/events/24372 • お越しの際は、事前の環境構築をお願いします。 • [JAWS-UG CLI] 総合案内 • http://qiita.com/tcsh/items/14c3278f69ab073afe0f 7
  8. 8. 1.CloudTrailの有効化 8
  9. 9. CloudTrailとは • サービスの概要 • ユーザによるAPIコールをロギングしてくれるサービス • Management ConsoleやCLIによる操作もロギングの対象 • ログはS3にJSON形式で保存される • 料金はログの保存先となるS3の料金のみ • CloudWatch LogsやSNSを利用して通知を行うことも可能 • 例)AWSアカウントでログインしたら通知、など • http://blogs.aws.amazon.com/security/post/Tx3PSPQSN8374D/How-to-Receive-Notifications- When-Your-AWS-Account-s-Root-Access-Keys-Are-Used • http://aws.typepad.com/aws_japan/2015/06/how-to-receive-notifications-when-your-aws- accounts-root-access-keys-are-used.html 9 Security Blog 超おすすめ!
  10. 10. API Activity History 10
  11. 11. Event 11
  12. 12. CloudTrailとは • なぜ、CloudTrailを使うのか • トラブルの原因の特定を助けてくれます!例えば・・・ • 誤操作 • シャットダウンのつもりが、削除してしまった・・・ \(^o^)/ • 統制できていない • セキュリティグループがいつの間にか緩くなってる! • 悪意による操作 • 退職記念Terminate! • 周知することで抑止力になる 12
  13. 13. CloudTrailを使うときの注意点 • 全てのサービスに対応して「いません」 • http://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail- supported-services.html • 設計が不十分だと、全く意味を為さない可能性がある • 例)Trailのログを保存するS3 Bucketのアクセス権を厳重にする • 改竄防止 • 例)IAMユーザを利用する(後述) • ログを閲覧するツールを適宜検討しましょう • JSONファイルを直接参照 • Management ConsoleのAPI Activity History • Lambda+CloudSearchとAWSのサービスを組み合わせ • Logstash+ElasticSearch+KibanaなどのOSS • Logstorageなどのサードパーティ製品、logglyなどのSaaS 13
  14. 14. 2. AWSアカウントへのMFA設定 14
  15. 15. AWSアカウントについて • AWSアカウントを作成した直後に利用できる唯一のアカウント • 全ての操作を実行することが可能 • ただし、制限することも出来ない • 初期状態ではID(メールアドレス)とパスワードのみで認証できるため、 取り扱いには細心の注意が必要 • 常用、ダメ、絶対!!! • AWSアカウントを利用しない方法は後述 15
  16. 16. MFA(Multi Factor Authentication)とは • 多要素認証 • ID(メールアドレス)+パスワードに加えて、 AWSではタイムベースのワンタイムパスワードによる認証を追加することが可能 • ハードウェアトークンとソフトウェアトークンを利用可能 • ハードウェアトークン • Gemalto製トークン(キーホルダー型およびカード型) • ソフトウェアトークン • Google Authentication、Amazon Virtual MFAなど • ワンタイムパスワードのアルゴリズムはRFC6238を参照 • http://tools.ietf.org/html/rfc6238 16
  17. 17. Gemalto製トークン(キーホルダー型) 17
  18. 18. Gemalto製トークン(カード型) 18
  19. 19. Google Authentication 19
  20. 20. なぜ、MFAを有効化するのか • 乗っ取り防止 • IDとパスワードだけでは認証強度が低い • 権限を制御できないので、乗っ取られると何でも出来る • 190万円の請求が来た例 http://d.hatena.ne.jp/yoya/20150404/aws • セキュアな運用 • トークンを金庫になどに封印してAWSアカウントの利用を原則禁止、など • 後述するIAMユーザで通常の運用は可能 • ただし、侵入テスト申請などAWSアカウントでのみ可能なこともわずかに存在する • http://dev.classmethod.jp/cloud/aws/penetration-testing/ • パスワードを知っている人とトークンを持っている人を分ける、など • 属人的な運用の回避 • 内部犯行による情報の窃取の抑止 20
  21. 21. もし、MFAデバイスが利用できなくなったら? • 電池切れや故障などでMFAデバイスが利用できなくなることがある • 以下の問い合わせフォームから、MFAデバイスの設定を解除してもらうことができる • Unusable Authentication Device • https://aws.amazon.com/forms/aws-mfa-support • 本人確認のために以下のような情報を要求されることがある(らしい) (公式な情報ではないので心配な方はサポートに確認してください) • メールアドレス • 名前 • 住所 • 登録クレジットカードの下4桁 • (設定している場合)秘密の質問 • 参考情報 • AWSアカウントの二段階認証に使ってたハードウェアMFA (カード型Gemalto)が電池切れになった 話 • http://blog.cloudpack.jp/2014/11/10/story-aws-hardware-mfa-device-gemalto-was-nobattery/ 21
  22. 22. 3.IAMユーザ およびIAMグループの作成 22
  23. 23. IAMユーザおよびIAMグループとは • IAMユーザとは • AWSアカウント内部で定義できるユーザ • Management Consoleへのログインなどに利用可能 • 権限はManaged PolicyもしくはInline Policyとして付与 • 権限はJSON形式で記述 • Managed PolicyはAWSのリソースとして定義できる(使い回せる) • Inline Policyはユーザやグループに直接設定する(使い回せない) • MFAを利用可能 • 強い権限を付与する場合には必ず設定するべき • IAMユーザに多要素認証の管理権限を委譲することも可能 • http://blogs.aws.amazon.com/security/post/Tx2SJJYE082KBUK/How-to-Delegate-Management-of- Multi-Factor-Authentication-to-AWS-IAM-Users • IAMグループとは • ユーザを所属させることができる • グループに権限を付与することで、グループに所属するユーザにも権限が付与される 23
  24. 24. IAMグループ 24
  25. 25. IAMユーザ 25
  26. 26. IAM Policy 26
  27. 27. なぜIAMを利用するのか • 権限を制御できる • 乗っ取られても被害を最小限度に抑えることができる • オペレーションミスによる事故(リソースの誤った削除など)を防止できる • 有効な監査ログを取得できる • RootアカウントやIAMユーザを使い回す(複数人で共有する)と、 CloudTrailで取得したログから実際にオペレーションを行ったユーザを特定できない、 もしくは非常に困難になる • 共有、ダメ、絶対!!! 27
  28. 28. (参考)IAMユーザでManagement Consoleへログイン 28
  29. 29. (参考)IAMユーザでManagement Consoleへログイン 29 エイリアスを設定可能
  30. 30. 4. パスワードポリシーの設定 30
  31. 31. パスワードポリシー • パスワードとして設定できる文字列を制御できる • 初期設定は、非常に緩いです。 • 制御できることは以下の通り • 文字種の利用を強制(アルファベット大文字・小文字・数字・記号) • 文字数(下限) • ユーザによるパスワードの変更可否 • パスワードの有効期限 • 再利用の制限 • 有効期限切れのパスワードリセットに管理者のオペレーションが必要か 31
  32. 32. パスワードポリシー 32
  33. 33. ダメ、絶対!!! / ̄\ | ^o^ | < パスワードは何ですか? \ _/ _| | _ | | / ̄\ | | < パスワードは password です \_/ _| |_ | | 33
  34. 34. 5.IAMユーザによる 請求情報へのアクセスの許可 34
  35. 35. 請求情報へのアクセス許可 • IAMユーザに対して請求関連の表示および変更を許可することが可能 • AWSアカウントを封印する場合には必須の設定 • 経理の人にIAMユーザを渡して請求金額の確認をしてもらうことも可能 • アクセス権限(ポリシー)の設定例は後述 • デフォルトでは、IAMユーザによる請求関連の表示および変更はできない • AWSアカウントのみ可能 35
  36. 36. 請求情報へのアクセス許可 36
  37. 37. 例)請求情報だけを閲覧できるポリシー { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "aws-portal:ViewBilling", "Resource": "*" } ] } 37
  38. 38. 6.支払通貨の変更 38
  39. 39. 支払通貨の変更 • AWSから請求される際の通貨を指定できるようになった • 日本円に対応 • クレジットカード払いの際の手数料を削減できる • デフォルトはドルのまま • 為替の影響を受けなくなるわけではありません • 請求が円になるだけであり、料金自体はドルで算出されます 39
  40. 40. 請求の流れ(クレジットカード払いの場合) 以前 • AWS ↓ ドルで請求 • カード会社 ↓ 請求時のレートを用いて円で請求 (手数料が発生) • ユーザ 現在 • AWS ↓ 請求時のレートを用いて円で請求 (手数料は発生しない) • カード会社 ↓ 円で請求 • ユーザ 40
  41. 41. 支払通貨の変更 41
  42. 42. 支払通貨の変更 42
  43. 43. 7.請求関連の通知設定 43
  44. 44. 請求関連の通知設定(3種類) • 毎月の請求書をメールで受け取ることが可能 • メールにPDFが添付されている • 料金が設定した閾値を超えたときに通知させることが可能 • Cloud WatchとSNS(Simple Notification Service)を利用して通知 • 使い過ぎに気付くことができる • 後述するbudget(予算)でも代替可能 • 料金の明細を出力することが可能(4種類) • S3にCSV形式で明細を出力させることが可能 • リソースにタグを付与して請求を細かく分類することも可能 • 「リソースとタグを含む詳細な請求レポート」 (Detailed billing report with resources and tags) • タグを付与すると、Cost Explorerによる詳細な分析も可能になる • 部署やプロジェクト単位で経費を案分したいときなどに利用することを検討 44
  45. 45. 設定 45
  46. 46. Billing Alarm 46
  47. 47. タグ 47
  48. 48. 【参考】Cost Explorer 48 タグでグルーピングできる
  49. 49. (参考)タグ付き請求明細で注意するところ • Snapshot • Snapshot全体のデータ量のみ記載される • タグをつけても個別に出力されない • VPN Gateway経由のデータ転送量(OUT) • VPN Gateway経由でのデータ転送として記載される • インスタンス単位での明細にならない • 必要に応じて、Cloud WatchやVPC Flow Logの利用を検討 49
  50. 50. 8.Budget(予算)の設定 50
  51. 51. 予算 • 予算とは • 月間の予算を設定し、現行コストの進捗率を管理できる • 複数の予算設定が可能 • 次月以降の予測ができる • フィルタリングも可能 • サービス、タグ、API呼び出し、Reserved / Non-Reserved、など • 例)部署、プロジェクト毎の予算を管理 • 個別の予算に対して通知設定が可能 • Billing Alertと同様のことも実現可能(フィルタリング無しの予算) • Cloud Watchアラームの無料枠を越えると課金対象 • なぜ予算を利用するのか • 予期しない料金発生の検知と迅速な原因の特定 • 従来のBilling Alermより詳細な通知条件の設定が可能 • 例)タグを使って部署別の予算を集計+個別通知 51
  52. 52. 設定 52
  53. 53. 管理 53
  54. 54. 9. 連絡先(Alternate Contacts) およびTrusted Advisorの確認 54
  55. 55. Trusted Advisorとは • AWS環境を自動でチェックし、推奨事項を教えてくれる • Management Consoleで確認可能 • 各種の推奨事項をメールで通知してくれる • Alternate Contactsとして請求・オペレーション・セキュリティの連絡先を3つ指定できる • 通知の種類は以下の4種類 • コスト • セキュリティ • 耐障害性 • パフォーマンス • サポートレベルに応じて利用できる推奨事項の数が異なる • Developer以下は4(パフォーマンス1、セキュリティ3)、Business以上は全て 55
  56. 56. ダッシュボード 56
  57. 57. 連絡先 57
  58. 58. 連絡先 58
  59. 59. なぜTrusted Advisorを利用すべきか • 自力でチェックするのはつらい • CLIなどで情報の抽出と識別をある程度自動化することは可能だが、つらい・・・ • そもそも何をチェックすればいいのか分からないときに便利 • 【注意】 • EC2インスタンスの内部など(責任共有モデルでユーザが責任を負うべき部分など)までは チェックできない • あくまでも、「Advisor」 • 最終的な管理責任はユーザにある • 全てのチェック項目をクリアしていても、セキュリティ的に完全であることを保証するものではない 59
  60. 60. 10.Configの有効化 60
  61. 61. Configとは • AWSのリソースに対して、以下の管理が可能 • 対象のリソースとそれに関連するリソースの状態を記録 • 例)EC2インスタンスが起動しているか、など • Configが無効の場合、(Management Consoleなどで)確認できるのは「今」の状態だけ • リソースの状態の変更履歴を確認可能 • リソース間の関係を記録(リレーションシップ) • 例)EC2インスタンスにアタッチされているEBSボリューム、など • http://docs.aws.amazon.com/ja_jp/config/latest/developerguide/resource-config- reference.html#supported-relationships • 変更を通知することも可能 61
  62. 62. サポートするリソース • 対象リソースは、EC2とその周辺サービス • EC2 instance • EC2 Elastic IP (VPC only) • EC2 security group • EC2 network interface • Amazon EBS volume • VPCs • Network access control list (ACL) • Route table • Subnet • VPN connection • Internet gateway • Customer gateway • VPN gateway • Trail 62
  63. 63. 検索 63
  64. 64. 結果 64
  65. 65. CloudTrailだけではだめなの? • CloudTrailは、「操作(APIコール)」を記録することはできるが、「状態」は記録でき ない • 初期状態からログを取得していれば再現できなくはないが・・・ • ただし、Management Consoleの機能だけでは少々わかりにくいので、 サードパーティ製品の利用なども検討するとよい • 例)Logstorageなど 65
  66. 66. (参考)Logstorageによる構成の出力例 (出典)LogstorageでAWSの全体構成を可視化する http://dev.classmethod.jp/cloud/aws/aws-logstorage-config/ 66
  67. 67. 11.秘密の質問の設定 67
  68. 68. 秘密の質問 • AWSアカウントに対して、管理者しか答えることができない質問とその回答を設定 • 質問は選択肢から選ぶ • 「秘密の質問の答え1?」といった汎用的な質問も設定できる。 • 質問は3つ設定できる • 設定するかどうかは任意(必須ではない) • 昔は、Billing Alert設定前に必須の設定作業だった • 設定した場合、 • 電話での問い合わせ時・MFAデバイスの解除申請時に秘密の質問への回答を求められる • MFAデバイスの解除申請は米国の窓口で行うため、 回答を日本語で記載していると日本語のサポートにエスカレーション(?)される • 日本の窓口の稼働時間は平日日中のため、緊急対応はできないので注意! • ただし、メールでの問い合わせでは回答を求められない • 一度設定すると削除できない • 変更は可能 68
  69. 69. 秘密の質問 • なぜ秘密の質問を設定するのか? • 本人確認の強化によるセキュリティの強化 • 趣味などSNSの投稿から推測されかねない質問と回答を設定することは逆にリスクとなりうるため、 回答の設定には注意が必要 • 回答の管理およびサポート利用時の手間を考慮し、秘密の質問を有効にするか検討して ください。 • 個人的には必ず設定すべき事項ではないと考えます。 • 組織のセキュリティポリシーに則り、設定するかを検討してください。 69
  70. 70. 設定後(表示言語が日本語の場合) 70
  71. 71. 設定後(表示言語が英語の場合) 71
  72. 72. まとめ 72
  73. 73. まとめ • デフォルトでは、運用上重要な機能があまり設定されていない • 要件に応じて必要なものを有効化し、適切に運用しましょう • 管理は自己責任 • 不安なことはADSJのソリューションアーキテクトやサポートの方に相談しましょう 73
  74. 74. 参考資料 • [JAWS-UG CLI] AWSアカウント(root)作業 #1証跡関連の設定 • http://qiita.com/tcsh/items/b31c64029dfe3953ca9d • [JAWS-UG CLI] AWSアカウント(root)作業 #2 IAM関連の設定 • http://qiita.com/tcsh/items/6f297076935fa6a06044 • [JAWS-UG CLI] AWSアカウント(root)作業 #3 請求関連の設定 • http://qiita.com/tcsh/items/3394d2815de1be69c43d 74
  75. 75. 参考資料 • AWS Black Belt Techシリーズ AWS CloudTrail & CloudWatch Logs • http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-aws- cloudtrail-cloudwatch-logs • JAWS-UG京王線 #2 「CloudTrailとの賢い付き合い方」 • https://speakerdeck.com/t2hnd/jaws-ugjing-wang-xian-number-2- cloudtrailtofalsexian-ifu-kihe-ifang • Supported Services(AWS CloudTrail) • http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_sup ported_services.html • Logstorage for AWS とは • http://www.logstorage.com/aws/index.html • AWS CloudTrail Logs • https://www.loggly.com/docs/cloudtrail-log-ingestion/ 75
  76. 76. 参考資料 • IAM Best Practices • http://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html • AWS で不正アクセスされて凄い額の請求が来ていた件 • http://d.hatena.ne.jp/yoya/20150404/aws • AWS Black Belt Techシリーズ AWS IAM • http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-aws-iam • パスワードの定期的変更に関する徳丸の意見まとめ • http://tumblr.tokumaru.org/post/38756508780/about-changing-passwords-regularly • IAMユーザに多要素認証の管理権限を委譲する方法 • http://blogs.aws.amazon.com/security/post/Tx2SJJYE082KBUK/How-to-Delegate- Management-of-Multi-Factor-Authentication-to-AWS-IAM-Users 76
  77. 77. 参考資料 • Billing and Cost Management Permissions Reference • https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions- ref.html • New – Set Preferred Payment Currency for your AWS Account • https://aws.amazon.com/jp/blogs/aws/new-set-preferred-payment-currency-for- your-aws-account/ • 外貨で決済した場合の換算レートについて • https://www.smbc-card.com/mem/service/sec/kaigai01.jsp • コスト配分タグの使用 • http://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/cost-alloc- tags.html • AWS Black Belt Techシリーズ Cost Explorer & AWS Trusted Advisor • http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-cost- explorer-aws-trusted-advisor 77
  78. 78. 参考資料 • [AWS新サービス] リソース管理サービス「AWS Config」 #reinvent • http://dev.classmethod.jp/cloud/aws/aws-service-new/ • [新サービス] AWS Configを触ってみた #reinvent • http://dev.classmethod.jp/cloud/aws/aws-config-ataglance/ • LogstorageでAWSの全体構成を可視化する • http://dev.classmethod.jp/cloud/aws/aws-logstorage-config/ 78

×