STS引き受けロールARN — 一時認証情報のアイデンティティ
STS assumed-role ARNを解析し、一時認証情報がどのように識別されるかを理解します。ロールARNとセッションARNの関係、CloudTrailログでの使用方法について解説。
詳細な説明
STS Assumed-Role ARNの構造
IAMロールがsts:AssumeRoleで引き受けられると、結果の一時認証情報はロール名とセッション名を含むassumed-role ARNに関連付けられます。
ARNの例
arn:aws:sts::123456789012:assumed-role/MyAppRole/session-name-1234
解析されたコンポーネント
| コンポーネント | 値 |
|---|---|
| Partition | aws |
| Service | sts |
| Region | (空) |
| Account ID | 123456789012 |
| Resource Type | assumed-role |
| Resource ID | MyAppRole/session-name-1234 |
ロールARNとAssumed-Role ARN
これらは関連する概念の2つの異なる識別子です:
- ロールARN:
arn:aws:iam::123456789012:role/MyAppRole— ロール定義を識別(サービス:iam) - Assumed-Role ARN:
arn:aws:sts::123456789012:assumed-role/MyAppRole/session-name— ロールを使用する特定のセッションを識別(サービス:sts)
セッション名
セッション名(session-name-1234)はAssumeRole呼び出し時に指定され、CloudTrailログに表示されます。ベストプラクティスは、CloudTrailイベントを特定の呼び出し元に遡れるように、意味のあるセッション名(ユーザー名やサービスインスタンスなど)を使用することです。
CloudTrailログ
CloudTrailでアクションを確認すると、userIdentity.arnフィールドには元のロールARNではなくassumed-role ARNが表示されます。これにより、誰がロールを引き受けてアクションを実行したかを特定できます。
IAMポリシー条件
assumed-role ARNパターンにマッチするIAMポリシーを記述でき、aws:PrincipalArnなどの条件キーを使用して、同じロールの異なるセッションに異なる権限を持たせることができます。
フェデレーテッドユーザーARN
同様に、フェデレーテッドユーザー(SAMLまたはWebアイデンティティ経由)はarn:aws:sts::123456789012:federated-user/usernameのようなARNを取得し、federated-userがリソースタイプとなります。
ユースケース
CloudTrailログを分析して、どの特定のプリンシパルがアクションを実行したかを特定する場合。assumed-role ARNは使用されたロールとセッション名の両方を明らかにし、マルチテナントまたは共有ロール環境でのセキュリティ監査とインシデント調査に不可欠です。