mcpField
A
aws-vault-mfa-iam

aws-vault-mfa-iam

github.com/mizchi云与 DevOps41650 次安装1 周前更新
代码仓库

关于 aws-vault-mfa-iam

这项日文技能介绍在 AWS IAM API 要求 MFA 会话时,如何为 aws-vault 配置虚拟 MFA,并说明会话刷新及常见故障处理。

主要功能

  1. 01注册虚拟 MFA 设备
  2. 02在 AWS config 中设置 mfa_serial
  3. 03清除 aws-vault 缓存会话
  4. 04排查 MFA 激活与令牌错误

适用场景

  1. 01为 aws-vault 的 IAM 命令启用 MFA
  2. 02诊断 STS 身份验证成功但 IAM API 失败

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mizchi/skills --skill aws-vault-mfa-iam

安装后在 Claude Code 中输入/aws-vault-mfa-iam确认已加载。

附带文件README.md

详细介绍

来自项目 README

aws-vault に virtual MFA (TOTP) を設定する

症状

aws-vault exec <profile> -- aws iam list-roles が次のエラーで停止:

InvalidClientTokenId: The security token included in the request is invalid

しかし aws sts get-caller-identity は同じ session で通る。

原因

account にある IAM 権限境界 (boundary policy / SCP / inline policy) が「IAM API は MFA 認証された session でのみ許可」というルールを持っている。aws-vault のデフォルト session は sts:GetSessionToken を MFA なしで取得するため、IAM API だけ弾かれる。

解決手順

1. AWS Console で virtual MFA device を登録

https://us-east-1.console.aws.amazon.com/iam/home#/users/details/<user>?section=security_credentials

  • 「Multi-factor authentication (MFA)」 → 「Assign MFA device」
  • Device type: Authenticator app を選ぶ(passkey じゃない、CLI から使えない)
  • 1Password / Authy / iOS Passwords / Google Authenticator で QR を読み取り
  • 連続 2 個のコードを入力(30 秒以上空けること、これしないと activate されない)

device の ARN は arn:aws:iam::<ACCOUNT>:mfa/<device-name>。

2. ~/.aws/config の profile に mfa_serial を追加
[profile <profile>]
region = ap-northeast-1
mfa_serial = arn:aws:iam::<ACCOUNT>:mfa/<device-name>
3. session を一度 clear
aws-vault clear <profile>
4. exec で MFA code 入力
aws-vault exec <profile> -- aws iam list-roles
# Enter MFA code: <6桁>

罠

罠対処
aws sts get-caller-identity が通るので「権限はある」と勘違いするIAM API も叩いて切り分け
FIDO2 passkey は AWS Console login 専用、CLI で使えないvirtual MFA を別途登録
登録途中で activate しないと「invalid MFA one time pass code」が永続「再同期」で連続 2 コード入力
~/.aws/config 更新後 cache 残りで古い session を返すaws-vault clear <profile>

関連

  • IAM ユーザは MFA device を 8 個まで登録可能 → passkey (Console 用) と virtual MFA (CLI 用) を併存できる
  • 一度通れば session token が cache される (default 1h、--duration=4h で延長)

评论

支持 Markdown