AWS IAM RoleとAssumeRoleの違い

目次

IAM RoleとAssumeRoleの違いのまとめ

種別 目的 使用者
IAM Role AWSリソース(モノ) 権限の定義・管理 EC2, Lambda, 他アカウント, ユーザー等
AssumeRole API操作(アクション) ロールを一時的に取得する ロールを利用したいエンティティ

AssumeRoleは、必要なときに一時的な鍵でRoleの権限を行使できます。

IAM Roleとは

IAM Roleとは、特定の個人(ユーザー)やサービスに固定されない権限の集まり(器)です。

 

特徴

  • ログイン用のパスワードやアクセスキーを持ちません。
  • 許可された人やプログラムであれば、誰でもそのロールの権限を借りることができます。
  • 用途として、EC2インスタンスにS3へのアクセスを許可する、別のアカウントのユーザーに自社のリソース操作を許可するといった場合に使われます。

 

構成要素

Trust Policy
(信頼ポリシー)
誰がこのロールを引き受けられるか
Permission Policy
(権限ポリシー)
このロールで何ができるか

AssumeRoleとは

AssumeRoleとは、ユーザーやプログラムがIAM Roleの権限を借りるために実行するAPI操作(アクションです。

 

使われ方

  • AssumeRole(ロールを引き受ける)というリクエストを送ります。
  • AWSから一時的なセキュリティ認証情報(アクセスキー、シークレットキー、セッショントークン)が発行されます。
  • この一時的な鍵は、通常1時間などの短時間で無効になります。

 

sts:AssumeRoleのstsとは

STS (Security Token Service) は、AWSが提供する一時的な認証情報(クレデンシャル)を発行するサービスです。

通常のIAM Userは長期的な認証情報(アクセスキー)を持ちますが、STSは有効期限付きの一時認証情報を発行します。

 

STSが返す一時認証情報の3点セット

この3つをセットで使うことで、有効期限内だけAWSリソースにアクセスできます。

項目 説明
AccessKeyId アクセスキーID
SecretAccessKey シークレットキー
SessionToken 一時セッションのトークン(これがSTSの特徴)

関連の記事

AWS スイッチロールで別アカウントにログイン

△上に戻る