プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

『AWS IAMのマニアックな話』を読んでIAMの運用・管理の肝を学ぶ

以前から電子版だけは買っていた『AWS IAMのマニアックな話』をこの度通読しました。

booth.pm

仕事でAWSは使っていて、今ではそれなりに習熟しているとは思うものの、今の職場に入ってはじめてAWSを本格的に使い始めたので、以外と基本的な所が抜けたまま作業しているなということが割とありました。

最近、EKSでちゃんとIAM roles for service accountsだったりEKS Pod Identityを使わないといけない場面が増えており、しっかりとしたIAM周りの知識が足りないなと痛感しているので、これを機に学ぼうと当該書籍を読み直した次第です。

最近眼精疲労に悩んでいることもあり、電子書籍だけだと読み通せなかった気がしますが、ちょうどタイミングよく(?)、物理書籍を技術書典15のオフライン会場で購入していて紙で読めて目の負担を軽減できたので、それもよかったのだと思います。

IAMポリシーのデザインパターンが書いてあるのがよい

この本を読む前、以下の4要素の内ではIAMポリシーが一番理解できてなくて、ふんいきと雑な権限では書けますが、ちゃんとした権限管理をしようとしたときの書き方に自信が無い状態でした。

  • IAMユーザー
  • IAMグループ
  • IAMポリシー
  • IAMロール

書き方に自信が無い状態は読んだ後でもたいして違いは無いかもしれませんが、基本的な所とベストプラクティスに沿いつつ管理しやすいようにIAMポリシーの書き方のパターンが書いてあるのがよかったです。

ホワイトリスト・パターン、ブラックリスト・パターン、それらを組み合わせたハイブリッド・パターンという切り口は、AWSのIAM運用・管理の経験を長く積んだ人なら当然の話なのかもしれませんが、これを自力で破綻無くひねり出すのは結構難しそうなので、この本で紹介してもらえてよかったと思います。おかげで整理しながら理解できるようになった気がします。

IAMのテンプレート集をダウンロードできるのもよい

数が多いわけではないですが、書籍内で紹介されていたIAMポリシーの書き方を実際にCloudFormationの形にしてテンプレートをダウンロードできるところもいいですね。

個人的にも仕事でもCfnは使っていなく、だいたいTerraformの方を使っていますが、このテンプレートはそんなに長大とか複雑ではないので、自分用にTerraformに変換するのも多分そこまで辛くは無いはず。

実際にテンプレートを落としてVSCodeで眺めてみて「こういう感じで書けばいいのか」という感触が掴めるのがよかったです。

とはいえIAM難しい

実際問題、破綻なくセキュアなIAM環境をゼロから作れ!と言われたときにすぐ実践できる気はあまりしませんが、やれ!と言われたときに全く動けないということはおそらく無くなったので、ここから学んだことをベースにして、実戦的な管理・運用をできるようにやっていきたいと思います。