IAM とは AWS サービス間の認可をするための AWS ユーザーを管理するためのサービスだ。
このサービス自体はとっても地味だが、 AWS で何をするにも必ず関わってくるサービスなので、おさえておくと良い。
IAM 利用イメージ
IAM ベストプラクティス
1)利用者ごとに IAM ユーザーを払い出し、IAM ユーザーを使いまわさない
CloudTrail 等で監査的なログを出力していても誰が何を使っているのか分からなくなってしまうため。
2)役割ごとの IAM グループを作成し、 IAM グループに権限を振る
IAM グループを活用することで、例えば、インフラ専用グループ、アプリ専用グループ等、用途によって分けることが望ましい。
これは、規模が大きくなればなるほど運用が楽になるメリットがある。
また、小規模の場合でも IAM ユーザー単位に権限を割り振ると権限の付け間違い等を防ぐことができる。
3)権限は必要最小限のものを割り当て、必要になったら増やす
権限は必要になったタイミングで付与するようにすることで事故を防げる。
4)定期的に棚卸しをする
使わなくなった権限は、定期的に削除する。
これも予期せぬ事故を防止するために実施する。
5)プログラムから利用する場合、アクセスキー、シークレットキーではなく IAM ロールを利用できないかを考える
クレデンシャルはプログラムに埋め込まない。
うっかりパブリックなところにソースコードごとアップロードしてしまうと事故危険あり。
なので、そもそもクレデンシャルは、ロールに代替できないかを検討するのが良い。
AWS 間の利用であれば、大抵の場合は IAM ロールで賄える。