我有一个EC2实例,我想从中登录到Vault以检索机密。我的保管库服务器在K8s群集中运行。我在金库中创建了一个角色
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
和策略测试策略。根据文档,我在AWS资源(EC2)上的保管库客户端使用“ GetCallerIdentity”方法向STS创建请求,并使用其AWS凭证对其进行签名。它将签名的STS请求以及登录请求附加到Vault服务器。保管库服务器将客户端签名的请求发送到AWS,以获得标识源的响应。因此,我的K8中的保管库实例组角色需要以下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 = ["*"]
}
那很好。我可以检索秘密。但是,即使我删除了iam Vault实例组角色的iam权限,它也可以正常工作。以我的理解,保险库应该不再能够识别请求的来源。为什么仍然可以工作?