Digital Appendix
『AIエージェントが見つけたサーバーレス』のデジタル付録
身元、秘密、鍵、限定委任
身元、秘密、鍵、限定委任
対象本文
第6章のworkload identity、secret store、key management、短命資格、token exchange、MicroVM上の役割分離を補います。主権の外部鍵はA-SOVEREIGN-01、Lambda MicroVMsの統合例はA-RUNTIME-01も参照します。
収集方法
2026年7月10日に、AWS、Google Cloud、Microsoft Azure、Cloudflareのworkload identityとsecret管理の公式文書、IETF RFC 8693を確認しました。製品名の横並びより、身元、資格、秘密、暗号鍵、委任を別の資産として扱えるかを比較しています。
2026年8月6日に、短期資格の有効時間の現在値と長期キーのローテーション基準を追加しました。この回は作業環境から各公式文書ページの本体へ未到達(HTTP 403)だったため、検索結果スニペットの逐語照合によります。同日、著者がSecurity Hub IAM.3、AWSロールの最大セッション設定(既定1時間・1〜12時間・AWSサービスのセッションは対象外)、Google Cloudのaccess token(既定3,600秒・組織ポリシーで43,200秒)、Entra IDのaccess token既定有効期間(60〜90分のランダム・平均75分)を原文で確認しました。同日中に、managed identityの約24時間cache(managed-identities-faq)とAWS role chainingの1時間上限(AssumeRole API Reference)も著者が原文で確認し、この節の全数値の一次確認が完了しました(VD-CH06-CRED-TTLはresolved)。
現在の答え
| 提供者 | workloadの身元 | 秘密の保管・参照 | 暗号鍵 | 設計上の境界 |
|---|---|---|---|---|
| AWS | IAM roleとservice-issued temporary credentials | Secrets Manager、Parameter Store | KMS、CloudHSM、external key store | roleとsecret resource policy、KMS key policyを別に評価 |
| Google Cloud | service account、metadata server、Workload Identity Federation | Secret Manager | Cloud KMS、Cloud HSM、Cloud EKM | identity federationで外部workloadも長命keyなしにtoken交換 |
| Microsoft Azure | Microsoft Entra managed identity、workload identity federation | Key Vault secrets | Key Vault keys、Managed HSM、external key management | system-assigned/user-assigned identityとvault RBACを分離 |
| Cloudflare | Worker/Service Binding、Access service token等を用途別に使用 | Workers secrets、Secrets Store | productごとのencryption/key機能 | account secretとscript binding、edge access、downstream credentialを分離 |
短期資格の有効時間の現在値です(2026-08-06時点。既定・上限とも提供者が変更し得ます)。書籍6.2の「尺の相場は時間単位」の内訳にあたります。
| 提供者 | 経路 | 既定 | 上限・備考 |
|---|---|---|---|
| AWS | STS AssumeRole(実行ロールの引き受け) | 1時間 | ロールの最大セッション設定は1〜12時間で、未指定なら既定1時間。この設定はAWSサービスが引き受けるセッションには適用されない。一時資格から別ロールを引き受けるrole chainingでは上限1時間で、超える指定は失敗する |
| Google Cloud | service accountのaccess token | 1時間(3,600秒) | 組織ポリシーconstraints/iam.allowServiceAccountCredentialLifetimeExtensionで許可したservice accountに限り12時間(43,200秒) |
| Microsoft Azure | Entra IDのaccess token(一般) | 60〜90分のランダム(平均75分) | 既定有効期間は発行時にランダムに割り当てられ、要求の集中を分散する |
| Microsoft Azure | managed identityのtoken(IMDS経由) | 未確定(既知の未知を参照) | 基盤側がresource URIごとにtokenを約24時間cacheし、期限前の強制リフレッシュは不可、権限変更の反映に数時間かかることがある。漏えい時に使える時間の見積もりはcache周期の上限側(約24時間)を使い、一般既定の60〜90分をこの経路へ適用しない |
長期キー側の運用基準としては、CIS AWS Foundations Benchmark由来のAWS Security Hub検査IAM.3が、IAM userのaccess keyを90日以内にローテーションすることを求めます(実装はAWS Config規則access-keys-rotatedで、日数の基準値は既定の90日)。この基準は2026-08-06に原文表記「[IAM.3] IAM users’ access keys should be rotated every 90 days or less」を確認済みです。
共通方向は、codeへ固定資格を埋めず、基盤がworkloadの身元を証明し、その身元へ短命tokenと必要最小限のresource accessを与えることです。差は、identityをrole、service account、Entra principal、bindingのどこへ置き、secret storeとkey serviceをどのpolicy planeで結ぶかにあります。
次の四つは同義ではありません。
- 身元: どのworkload、user、agent、serviceが要求したか。
- 資格: 身元を短時間証明するtokenや署名可能なcredential。
- 秘密: 外部API keyやpasswordのように、対象serviceがまだ長命値を要求するときの値。
- 暗号鍵: dataを暗号化・復号・署名するkeyと、その使用policy。
RFC 8693のtoken exchangeは、subject_token、任意のactor_token、resource、audience、scopeを使って、入口のtokenを奥まで転送せず、対象を狭めたtokenへ交換する共通語彙を与えます。tenant_id、run_id、承認IDは標準項目ではなく、application固有の委任文脈として署名対象またはserver-side stateへ結びます。
Lambda MicroVMsをClaude Managed Agentsのself-hosted sandboxにする参照構成では、launcherがwebhook署名を検証して環境を起動し、MicroVMのroleがSecrets Managerの参照を実行時に読む一方、Anthropic organization API keyはAWS computeへ渡しません。これは、起動権限、webhook検証、secret参照、tool実行を分ける具体例です。
一次資料
- AWS Secrets Manager access control: https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_overview.html
- AWS Lambda execution role: https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html
- Google Secret Manager best practices: https://docs.cloud.google.com/secret-manager/docs/best-practices
- Google Workload Identity Federation: https://docs.cloud.google.com/iam/docs/workload-identity-federation
- Azure managed identities for Functions: https://learn.microsoft.com/en-us/azure/app-service/overview-managed-identity
- Azure Key Vault authentication: https://learn.microsoft.com/en-us/azure/key-vault/general/authentication
- Cloudflare Workers secrets: https://developers.cloudflare.com/workers/configuration/secrets/
- IETF OAuth 2.0 Token Exchange, RFC 8693: https://www.rfc-editor.org/rfc/rfc8693.html
- AWS STS AssumeRole API Reference: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
- Google Cloud short-lived credentials: https://cloud.google.com/iam/docs/create-short-lived-credentials-direct
- Azure managed identities FAQ: https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/managed-identities-faq
- AWS Security Hub IAM controls (IAM.3): https://docs.aws.amazon.com/securityhub/latest/userguide/iam-controls.html
- AWS IAM roles maximum session duration: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html
- Microsoft Entra ID access tokens: https://learn.microsoft.com/en-us/entra/identity-platform/access-tokens
記入用の雛形——権限・委任マトリクス(空欄版)
書籍第6章6.5の権限・委任マトリクスを自分のワークフローで書き出すための空欄版です。段階ごとに複製して使います。
ワークフロー:
段階:
利用者・主体:
接続するワークロードID:
対象資源と操作:
委任scope / audience / resource:
tenant・run・対象への拘束:
人間承認の要否と拘束するダイジェスト:
有効期限と再取得条件:
拒否時の動作:
監査証拠:
既知の未知
- 対応service、federation issuer、token lifetime、cache、rotation、audit項目は変更されます。
- managed identityが受け取るtoken自体の有効期間は、確認した2ページ(access-tokensとmanaged-identities-faq)の記載だけでは確定できません(access token全般の既定60〜90分がこの経路へ適用されるかは未確認)。上表の該当セルは「未確定」とし、設計は「受け取るtokenの入れ替わりは最長で約24時間周期」という上限側で見積もります。
- 「managed identity」があっても、対象resource側のauthorization設定は別に必要です。
- 外部serviceが長命API keyしか受けない場合、secret storeは漏えい面を減らしますが、権限の短命化までは行いません。
- provider外部鍵は、実行中のplaintext不可視や法的主権を単独では保証しません。
変更履歴
- 0.11.0 (2026-08-06): 短期資格の有効時間の現在値(AWS・Google Cloud・Azure)と、90日ローテーション基準(Security Hub IAM.3)を追加。検索スニペット照合につき、原文確認は
VD-CH06-CRED-TTLで追跡。 - 0.10.0 (2026-07-28): 書籍のJIS B5・本文112ページ対応にともない、第6章6.5の記入用雛形(空欄版)を本文から移設。
- 0.9.0 (2026-07-10): 四社の身元・秘密・鍵を分離し、RFC 8693とMicroVM参照構成を結ぶ初版ドラフトを作成。