IAMロールの本当の仕組み
固定キーを使わずにロールが一時的な権限を付与する方法を学びます。
「IAMロールの本当の仕組み」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
ロールとユーザーの違い
IAM ロールは、引き受けることで一連の権限を取得できる ID ですが、ユーザーとは異なり永続的な認証情報を持ちません。エンティティがロールを引き受けると、AWS は一時的なセキュリティ認証情報を発行し、それらは一定時間後に期限切れになります。ロールは AWS でアクセスを許可するための安全で現代的な方法であり、SCS-C02 試験にも頻繁に登場します。
ロールを構成する要素
すべてのロールには、2 種類のポリシー要素があります。
- 信頼ポリシー(引き受けロールポリシーとも呼ばれます)は、ロールを引き受けることを許可する主体を定義します。
- 1 つ以上のアクセス権限ポリシーは、ロールを引き受けた後に、そのロールで何ができるかを定義します。
この分離が、ロールによる安全な委任の中心です。誰が ID を借りられるかと、その ID で何ができるかを別々に決められます。
一時的な認証情報
ロールが引き受けられると、Security Token Service (STS) は、アクセスキー ID、シークレットキー、セッショントークンを含む認証情報セットを発行します。これらは限られた期間(15 分から 12 時間)だけ有効です。自動的に期限切れになるため、漏えいした一時的な認証情報はすぐに使えなくなり、長期間有効なアクセスキーと比べてリスクを大幅に抑えられます。
ロールを引き受けられる主体
信頼ポリシーには、ロールを引き受けられるプリンシパルが記載されます。プリンシパルには次のようなものがあります。
- ワークロードに ID を与えるAWS サービス(EC2 や Lambda など)。
- 同じアカウントまたは別のアカウントにあるIAM ユーザーまたはロール(クロスアカウントアクセス用)。
- SAML または OIDC プロバイダーのフェデレーテッド ID。
プリンシパルが信頼ポリシーに指定されていなければ、アクセス権限ポリシーで何が許可されていても、決してロールを引き受けることはできません。
AWS サービス用のロール
最も一般的な用途は、AWS サービスにユーザーの代わりに処理を実行させることです。たとえば、ロールをアタッチした EC2 インスタンスは、キーを埋め込まずに S3 を呼び出せます。AWS は内部で認証情報を自動的にローテーションします。試験では、サービスロールによってアプリケーションから静的な秘密情報を排除できることを理解している必要があります。
信頼ポリシーの例
以下は、EC2 サービスによるロールの引き受けを許可する信頼ポリシーのスニペットです。Principalはロールを引き受けられる主体を指定し、アクションは常にsts:AssumeRoleです。
{
"Effect": "Allow",
"Principal": { "Service": "ec2.amazonaws.com" },
"Action": "sts:AssumeRole"
}クロスアカウントロール
ロールはクロスアカウントアクセスで特に有効です。アカウント A がアカウント B を信頼するロールを作成し、B のプリンシパルがそれを引き受けると、A で操作するための一時的な認証情報を取得できます。キーを共有する必要はなく、アクセス範囲はアクセス権限ポリシーで制限でき、どちらの側からでもいつでも信頼関係を取り消せます。これは、アカウント間で長期的なキーを配布する代わりに推奨される方法です。
フェデレーション用のロール
SAML で認証された企業ユーザーや、Web ID フェデレーションを利用するアプリケーションユーザーなどの外部 ID も、ロールを引き受けます。ID プロバイダーがユーザーを検証すると、AWS はロールに関連付けられた一時的な認証情報を発行します。つまり、人間に IAM ユーザーを用意する必要はなく、ロールにマッピングされる検証済みの ID だけを用意すればよいのです。
漏えいする認証情報がない
ロールの最大のセキュリティ上の利点は、盗難やローテーション、コードリポジトリへの誤ったコミットの対象となる常時有効な認証情報が存在しないことです。権限は一時的なセッションとしてのみ存在します。これは、時間の経過も考慮した最小権限の原則に沿っています。必要なときだけアクセスを許可し、自動的に期限切れにできます。
権限は自動的に引き継がれない
注意すべき点として、ロールを引き受けることが許可されても、付与されるのはロールの権限だけであり、自分の権限とロールの権限を組み合わせたものではありません。ロールを引き受けると、新しい ID になります。そのセッションでは元の権限は使われないため、ロールの設計にはタスクに必要なすべての権限を含める必要があります。
ロールを使用する場面
ワークロードに AWS へのアクセスが必要な場合、あるアカウントが別のアカウントで操作する必要がある場合、または人間が外部プロバイダーを通じて認証する場合は、ロールを使用してください。試験で問われる「長期的なキーを使わずにアクセスを許可するにはどうすればよいか」という問いのほとんどに対する答えがロールです。ロールは、信頼ポリシー(誰が)とアクセス権限ポリシー(何を)を組み合わせ、安全で一時的かつ監査可能なアクセスを実現します。
クイックチェック
ロールについての理解を確認しましょう。
まとめ
IAM ロールは、STS から一時的な権限を取得するために引き受ける、認証情報を持たない ID です。ロールには、信頼ポリシー(誰が引き受けられるか)とアクセス権限ポリシー(何ができるか)が組み合わされています。ロールは、サービスアクセス、クロスアカウント委任、フェデレーションを支え、長期的な秘密情報を排除します。ロールを引き受けると、そのセッション中は自分の ID がロールの ID に置き換わります。
よくある質問
「IAMロールの本当の仕組み」レッスンは無料ですか?
はい。「IAMロールの本当の仕組み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「IAMロールの本当の仕組み」で何を学びますか?
固定キーを使わずにロールが一時的な権限を付与する方法を学びます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「IAMロールの本当の仕組み」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。