如何将Vault AWS认证登录命令转换为REST API请求?
将Vault AWS登录命令转换为REST API请求
核心API端点
对应你命令中的-path=path-value,REST请求的端点为:
POST /v1/auth/path-value/login
(替换path-value为实际的AWS auth挂载路径,拼接你的Vault服务器地址前缀,比如https://your-vault-server.com/v1/auth/path-value/login)
请求体构造
Vault的AWS IAM认证需要验证你的AWS身份,请求体需包含目标角色和AWS STS GetCallerIdentity请求的签名信息,JSON格式如下:
{ "role": "role-value", "iam_http_request_method": "POST", "iam_request_url": "https%3A%2F%2Fsts.amazonaws.com%2F%3FAction%3DGetCallerIdentity%26Version%3D2011-06-15", "iam_request_headers": "<Base64编码的请求头字符串>", "iam_request_body": "<Base64编码的请求体内容(通常为空)>" }
role-value替换为你命令中的实际角色名- 签名信息可通过AWS SDK或CLI生成,比如借助
aws sts get-caller-identity结合签名工具获取所需的编码头、URL值
curl示例请求
curl -X POST https://your-vault-server.com/v1/auth/path-value/login \ -H "Content-Type: application/json" \ -d '{ "role": "role-value", "iam_http_request_method": "POST", "iam_request_url": "https%3A%2F%2Fsts.amazonaws.com%2F%3FAction%3DGetCallerIdentity%26Version%3D2011-06-15", "iam_request_headers": "eyJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsIEhvc3QiOiAic3RzLmFtYXpvbmF3cy5jb20iLCJJbnN0YW5jZSI6ICJteS1pbnN0YW5jZSJ9", "iam_request_body": "" }'
解析响应
请求成功后,返回的JSON中auth.client_token字段就是你需要的Vault令牌,对应原命令-token-only的输出结果。
内容的提问来源于stack exchange,提问作者J Harish
相关产品推荐
相关产品推荐

