あきろぐ

いろいろめもするよ🐈🐈🐈

「AWS IAMのマニアックな話」を読んでIAMについて勉強した

最近、IAMをどのように管理するのがベストなのか悩んでいたので「AWS IAMのマニアックな話」を読みました。全部で126ページの薄い本ではありますが、内容はIAMについて分かりやすく丁寧に書かれているし、チュートリアルもあるので手を動かしながら理解を深められる良本だと思いました。
IAMについての説明は公式ドキュメントだったりクラスメソッドさんの記事にもまとまっていますが、どのようにIAMポリシーをデザインして運用していくのかについての知見は中々得られないので勉強になりました。
booth.pm

全部読んでみて

この本を通して筆者が言いたいのは、「IAMベストプラクティスをよく読んで理解し、実践すること」だと感じました。そのために、IAMのベストプラクティスについて分かりやすく解説されているのがこの本なのかなと思います。
IAMベストプラクティス
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.htmldocs.aws.amazon.com

AWSセキュリティインシデントの大半は、アクセスキーやシークレットアクセスキーの漏洩などのIAM関連だそうです。この本では、Capital Oneの不正アクセスによる情報流出の事件を例にとって、どのようにIAMポリシーを設定すればよかったのかを説明されています。セキュリティ関連のインシデントは心臓に悪いのでできるだけ遭遇したくないですね。
筆者はインシデントを回避するためにもできるだけアクセスキーを発行しないで済む運用を推奨しています。今ではほとんどのケースでアクセスキー発行しなくても代替できるようになっているようなので、アクセスキーを使っているものは再度見直しして最小限したいと思いました。

勉強になったところ

  • IAMポリシーのデザインパターン
    • ホワイトリスト(許可したい権限のみ付与する)、ブラックリスト(許可しない権限のみを剥奪する)、ハイブリットの3つのパターンがある。
    • 普段ホワイトリストパターンでしか運用してなかったので、ブラックリストやハイブリットパターンも用途によっては使うのあり。
    • 確かにホワイトリストだと許可する権限を細かく設計しないといけないので、ちょっと大変さはあるのは分かる。。
  • IAMとセキュリティ
    • IAMベストプラクティス全部は実践できていないのでもう一度見直したい
    • AWSアカウント(ルートユーザー)で操作しない!MFA使う!最小権限の付与!
    • Lambdaの権限は盲点。FullAccess権限はつけないこと
      • AWSリソースのアクセス権をコントロールできてしまうから
  • IAMの運用
    • 役割と責任範囲を明確にする(誰が使ってどんな操作ができるようになっているのか洗い出す)
    • IAMユーザーは人だけではなく使っているツールやプログラムも洗い出しておく
    • 定期的にIAMユーザーの見直し、不要になったらすぐ消す
    • 人間は必ずミスする
      • 最小権限を付与することで影響を最小限にする
      • AWSマネージドサービスを使う(CloudTail, Config, GuardDutyなど)
    • MFA強制ポリシーよさそう(MFA認証しないとIAM以外の権限を拒否するポリシー)

めも

勉強のためにIAM周りのめもをしました

f:id:akngo22:20191231193922p:plain
認証と認可
f:id:akngo22:20191231194009p:plain
AWSアカウントとIAMユーザー
f:id:akngo22:20191231194057p:plain
IAMロールとIAMポリシー