AWS IAMによるセキュリティ・ベストプラクティス(スライド紹介)

AWSのPrincipal Security Solutions ArchitectであるMax Ramsayが、AWS IAMのベストプラクティスを説くスライドの紹介。AWS IAMとは、AWSのサービスやリソースへのアクセスをセキュアに制御するためのサービス。

クラウド・ベンダーはメインとなる仮想サーバー機能やストレージ機能だけではなくて、IAMのような地味ながら極めて重要な機能を提供できることが大切であると個人的には感じている。ところが、IAMがあっても十分に活用されていない場合もあるので、この良スライドを意訳しつつ日本語でサマリーを書いてみる。

最小権限の原則といったセキュリティ管理における常識的な内容を、AWS IAMという機能にマッピングするのが本プレゼンテーションの趣旨なので、実現方法の説明はスライド内を参照。

  1. ユーザーを個別に作ろう
    • クレデンシャルを共有すべきではない
    • 権限を分割しよう
  2. 権限はグループで管理しよう
    • 複数のユーザーに権限を割り当てるのが簡単
    • 異動した社員の権限の管理なども簡単
    • 権限変更時の設定漏れが起きにくい
  3. 最小の権限だけを割り当てよう
    • 管理の粒度を高められる
    • 誤操作の可能性を低くできる
    • *:*のポリシーは避けよう
  4. 強力なパスワードポリシーを使おう
    • 最短文字数や、大文字小文字、記号使用などを設定できる
  5. 強い権限を持ったユーザーはMFAを使うべし
    • Multi-Factor Authentication(多要素認証)とは、「知識ベース」であるパスワードに加えて、「所有ベース」のワンタイムパスワード生成装置(トークン)を、2つめの認証要素として付加できる仕組み。
    • 設定・利用について追加料金は不要
      • 物理トークンを使う場合はAmazon.comから購入する必要があるが、AndroidiOSにインストールして利用するVirtual MFA(無料)も使える。
  6. EC2インスタンス上での用途にはIAMロールを活用しよう
    • EC2インスタンス上にアクセスキーなどをプロビジョンするのが非常に楽になる
      • 鍵のローテーションも自動で行われる
      • SDKとの相性もバッチリ
  7. アクセスを共有するためにもIAMロール
    • アカウントをまたいだアクセスを許可したい場合でも、セキュリティ・クレデンシャルを渡してしまう必要が無い
  8. セキュリティ・クレデンシャルは頻繁にローテーションしよう
    • これは常識
  9. 条件式を使って権限を制限しよう
    • MFA使用、SSL経由、アクセス元IPなどに絞り込むことができる
      • それぞれスライド中に実際のサンプルあり
  10. Root権限の使用は最小限度にとどめよう
    • 必要な権限をIAMユーザーに委譲する

ところで、AWSではセキュリティやコンプライアンスに関連する情報をAWS Security and Compliance Centerに集約して掲載していて、第三者機関から取得済みの認証の情報などもチェックできる。また、セキュリティ関連のプロセスを概観したOverview of Security Processes日本語版PDF←ただし少し古い)というホワイトペーパーを発行していて、定期的に更新されている。