Hashicorp vault 使用IAM用户或角色进行身份验证
我有一个EC2实例,我想从中登录到vault以检索机密。我的vault服务器在K8s群集中运行。我在vault中创建了一个角色Hashicorp vault 使用IAM用户或角色进行身份验证,hashicorp-vault,Hashicorp Vault,我有一个EC2实例,我想从中登录到vault以检索机密。我的vault服务器在K8s群集中运行。我在vault中创建了一个角色 vault write auth/aws/role/test-role \ auth_type=iam \ policies=test-policy \ max_ttl=1h \ bound_iam_principal_arn=arn:aws:iam::<account-id>:role/instance-group-role-name-cl
vault write auth/aws/role/test-role \
auth_type=iam \
policies=test-policy \
max_ttl=1h \
bound_iam_principal_arn=arn:aws:iam::<account-id>:role/instance-group-role-name-client
vault写验证/aws/角色/测试角色\
认证类型=iam\
策略=测试策略\
最大ttl=1h\
绑定的\u iam\u主体\u arn=arn:aws:iam:::角色/实例组角色名称客户端
以及政策测试政策。根据AWS资源(EC2)上的文档,我的vault客户端使用“GetCallerIdentity”方法创建对STS的请求,并使用其AWS凭据对其进行签名。它将签名的STS请求与登录请求一起附加到vault服务器。vault服务器将由客户端签名的请求发送到AWS,以获得标识源的响应。因此,K8s中的我的vault实例组角色需要以下iam权限:
statement {
effect = "Allow"
actions = ["iam:GetRole", "iam:GetUser"]
resources = [
"arn:aws:iam::<account-id>:role/instance-group-role-name-client"
]
}
statement {
effect = "Allow"
actions = ["sts:GetCallerIdentity"]
resources = ["*"]
}
语句{
effect=“允许”
操作=[“iam:GetRole”,“iam:GetUser”]
资源=[
“arn:aws:iam:::角色/实例组角色名称客户端”
]
}
声明{
effect=“允许”
actions=[“sts:GetCallerIdentity”]
资源=[“*”]
}
那很好。我能找回秘密。但即使我删除iam vault实例组角色的iam权限,它也可以工作。据我所知,vault不应再能够识别请求的来源。为什么它能工作呢