はじめに
AWSの資格を残すところアソシエイトとプラクティショナーのみとなったところで改めてIAMについてメモとしてまとめます。
資格についてはすべて問題を暗記し、サービスについて大枠を80%ぐらい理解した形で試験を受けているせいでハンズオンなど実戦形式には役立たないアンチパターンができあがってしまいました・・。
※あくまでメモとして記録に残しているため、上級者の方は知っているよと思われるかもしれないです。ご了承ください。
※参照元はすべて公式ドキュメントから引用しております。
IAMとは
AWSのIdentity and Access Management(IAM)は、AWSリソースへのアクセス制御を行うための中核的なサービスです。
IAMユーザー(IAM User)
IAMユーザーとは、AWSリソースにアクセスするためのエンティティであり、個々のユーザーに一意の認証情報(ユーザー名とパスワード、またはアクセスキー)が割り当てられます。これにより、各ユーザーは自身の認証情報を用いてAWSリソースにアクセスできます。
主な特徴
- 個別の認証情報
各ユーザーは独自の認証情報を持ち、これを使用してAWSにサインインします。 - アクセス権限のカスタマイズ
ユーザーごとに異なるポリシーを適用することで、必要な権限のみを付与できます。 - 多要素認証(MFA)の設定
セキュリティ強化のため、MFAを設定することが推奨されます。
IAMグループ(IAM Group)
IAMグループは、複数のIAMユーザーをまとめて管理するための単位です。共通のアクセス権限を持つユーザーをグループ化することで、効率的な権限管理が可能となります。
主な特徴
- 一括ポリシー適用
グループにポリシーをアタッチすると、そのグループ内の全ユーザーに同じ権限が適用されます。 - 管理の簡素化
ユーザーをグループに追加または削除することで、個別のポリシー管理の手間を省けます。 - 多重所属の許可
ユーザーは複数のグループに所属でき、複数の権限セットを組み合わせることができます。
IAMロール(IAM Role)
IAMロールは、AWSリソースに対する一時的なアクセス権限を付与するための仕組みです。ロールを引き受けることで、ユーザーやサービスは特定の権限を一時的に取得できます。
主な特徴
- 一時的な認証情報
ロールを引き受けることで、一時的なセキュリティ認証情報が提供されます。 - サービス間のアクセス
EC2インスタンスやLambda関数などのAWSサービスが他のAWSリソースにアクセスする際にロールを使用します。 - クロスアカウントアクセス
異なるAWSアカウント間でのリソースアクセスを許可する際にもロールが活用されます。
IAMポリシー(IAM Policy)
IAMポリシーは、AWSリソースへのアクセス許可や拒否を定義するJSON形式のドキュメントです。これをユーザー、グループ、ロールにアタッチすることで、アクセス制御を実現します。
主な特徴
- 詳細な権限設定
特定のアクションやリソースに対する許可や拒否を細かく設定できます。 - 条件付きアクセス: 特定の条件(例: IPアドレスや時間帯)に基づいてアクセスを制御できます。
- ポリシーの種類: AWSが提供する管理ポリシーと、ユーザーが独自に作成するカスタマー管理ポリシーがあります。
IAM Identity Center(旧AWS SSO)
IAM Identity Centerは、複数のAWSアカウントや外部アプリケーションへのシングルサインオン(SSO)を提供するサービスです。これにより、ユーザーは一度のサインインで複数のリソースにアクセスできます。
主な特徴
- 統合認証
Microsoft Entra ID(旧Azure AD)やOktaなどの外部IDプロバイダーと連携し、中央集権的なユーザー管理が可能です。 - アクセス許可セット
特定のAWSアカウントやアプリケーションへのアクセス権限を定義し、ユーザーやグループに割り当てます。 - AWS Organizationsとの連携
複数のAWSアカウントを一元的に管理し、統合されたアクセス制御を実現します。
ハンズオン
今回上記のIAMに関する初心者ハンズオンを実施しました。
中でも「AWS Organizations によるマルチアカウント戦略を試してみる」のハンズオンはかなり興味深かったです。
今まで個人のAWSのアカウントを使用しており、他に使用させる人もいないからルートユーザーでもいいかと思っていました。
でも、AWS Orgazationsを用いてみるとマルチなAWSアカウントを1つのSSOユーザーで扱えるので異なるアカウント間での検証とかでは有用だなと感じました。
さいごに
今までIAMに関しては混ざって理解していたところがありました。
あくまでIAMポリシーは 「アクセス許可や拒否を定義するルール」 であり、
IAMユーザー、IAMグループ、IAMロールは 「そのルール(ポリシー)によって権限を与えられる側」 であるということがわかりました。
他にも初心者ハンズオンを試しつつ勉強していきます。
ありがとうございます。