IAMロールの解説(AWS認定クラウドプラクティショナーシラバス用語)

IAMロールの解説(AWS認定クラウドプラクティショナーシラバス用語)
目次

IAMロールとは

IAM_ROLE.png

IAMロール(IAM Role)とは、特定のユーザーやグループに長期間紐づくのではなく、AWSの各種サービスや外部のユーザーに対して「一時的なアクセス権限(一時的な認証情報)」を付与するためのIAMの仕組みです。通常のIAMユーザーが永続的なパスワードやアクセスキーを持っているのに対し、IAMロールは固定のパスワードやキーを持ちません。その代わり、「信頼されたエンティティ(EC2インスタンスやLambda関数など)」が必要な時だけこのロールを「引き受ける(Assumeする)」ことで、一時的に必要な権限を取得してAWSリソースを操作できるようになります。パスワードやキーをソースコード内に直接書き込む必要がなくなるため、セキュリティリスクを大幅に軽減できる非常に重要な機能です。

具体例

IAMロールを現実世界に例えると、会社にある「来客用の入館バッジ」や、工事現場の「作業責任者の腕章」のようなものです。この腕章には特定の人物の名前は書かれておらず、固定の所有者はいません。しかし、「今日この作業を担当する人」がこの腕章を腕に巻く(ロールを引き受ける)ことで、その日だけ機材庫の鍵を開けたり、特定のエリアに入ったりする権限を一時的に得ることができます。作業が終わって腕章を返却すれば、権限は失われます。
AWS環境での典型的な利用例として、EC2インスタンス(仮想サーバー)上で動くアプリケーションが、S3バケット(ストレージ)に画像をアップロードするシナリオを考えてみましょう。この時、EC2の中にアクセスキーを直書き(ハードコード)してしまうと、万が一サーバーがハッキングされた際にキーが盗まれ、被害が拡大してしまいます。そこで、「S3に書き込みができるIAMロール」を作成し、それをEC2インスタンスに割り当てます。すると、EC2上のアプリケーションは自動的に一時的な権限を取得し、キーを持っていなくても安全にS3へ画像をアップロードできるようになります。これがIAMロールの最大のメリットです。

もう少し詳しく

IAMロールの仕組みは「信頼ポリシー(Trust Policy)」と「許可ポリシー(Permissions Policy)」という2つのポリシーによって構成されています。
「信頼ポリシー」は、「誰(何)がこのロールを引き受けることができるか」を定義します。例えば、「このロールはAmazon EC2というサービスだけが引き受けることができる」といった条件を指定します。
「許可ポリシー」は、通常のIAMポリシーと同様に「ロールを引き受けた後、どのようなAWSリソースに対して何の操作ができるか」を定義します。
IAMロールが引き受けられると、AWS Security Token Service (AWS STS) という裏側のサービスが稼働し、有効期限付きの一時的なセキュリティ認証情報(アクセスキー、シークレットキー、セッショントークン)が動的に生成されて付与されます。数時間で自動的に失効・再発行されるため、キーの漏洩リスクや定期的なローテーション(変更)の手間がなくなります。

IAMロールのユースケースはEC2やLambdaといったAWSサービスに権限を与えるだけにとどまりません。例えば「クロスアカウントアクセス」と呼ばれる、別のAWSアカウントに属するユーザーに自社のアカウントへのアクセス権を安全に付与する場合や、「IDフェデレーション」として会社のActive Directory(社内認証システム)やGoogle、Facebookなどの外部プロバイダーで認証されたユーザーに対して、AWSコンソールへの一時的なアクセス権を与える(シングルサインオンの実現)際にも、IAMロールが不可欠な役割を果たします。

試験でのポイント

AWS認定クラウドプラクティショナー(CLF-C02)試験において、IAMロールは非常に重要な概念であり、頻繁に出題されます。
最もよく問われるシナリオは、「EC2インスタンス上で実行されるアプリケーションから、他のAWSサービス(S3やDynamoDBなど)に安全にアクセスしたい場合、どうすべきか?」という問題です。正解は常に「アクセスキーをソースコードに記述するのではなく、適切な権限を持つ『IAMロール』をEC2インスタンスにアタッチする」です。
また、「IAMユーザー」と「IAMロール」の違いを明確に理解しているかも問われます。IAMユーザーが永続的な認証情報(人間や外部アプリ用)を持つのに対し、IAMロールは「一時的な認証情報」を提供し、主に「AWSサービス(EC2、Lambda等)」や「他のAWSアカウントのユーザー」に権限を委譲するために使われる点を整理しておきましょう。

関連する用語

関連用語として、権限のルールを定義する「IAMポリシー」、ロールを利用する代表的なコンピューティングサービスである「EC2」、外部からの認証基盤と連携するための「IDフェデレーション」があります。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ