在 hashicorp 保险库上配置 aws auth

Configure aws auth on hashicorp vault

我正在尝试在 hashicorp 保险库上配置 aws auth。以下是我执行的步骤。但我不确定我是否做对了。虽然有效。

  1. 使用以下策略创建 IAM 用户
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:GetUser",
                "ec2:DescribeInstances",
            ],
            "Resource": "*"
        }
    ]
}
  1. 使用以下策略创建 IAM 角色
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::*:role/aws-example-role"
        }
    ]
}
  1. 在 Vault 上启用 AWS 身份验证
export VAULT_ADDR=http://127.0.0.1:8200

export VAULT_NAMESPACE=namespace_main/namespace_tenant_1

vault auth enable -path=aws aws  

vault write auth/aws/config/client secret_key=xxx access_key=xxx region=us-east-1

vault write auth/aws/role/dev-role auth_type=iam bound_iam_principal_arn="arn:aws:iam::1234xxxxxxxxxxxx:role/aws-example-role" policies=namespace_tenant_1_admin max_ttl=50h 

vault login -method=aws -path=aws role=dev-role

问题:

  1. 这是否意味着我正在使用角色登录到保险库?
  2. 上面2个vault write有什么区别?我需要两者还是只需要一个。

Does that means I am using a role to login to vault?

是的,在这种方法中,凭据不存储在保管库中,而是按需生成。这就是我们关联角色和策略的原因,以便根据我们所做的配置按需生成凭据。

vault write auth/aws/config/client secret_key=xxx access_key=xxx region=us-east-1

此保管库写入是在 auth/aws/config/ 位置写入 AWS 帐户详细信息,并使用您提供 AWS 帐户凭据的密钥和访问密钥。

当这个保险库写入 auth/aws/role/dev-role auth_type=iam bound_iam_principal_arn="arn:aws:iam::1234xxxxxxxxxxxx:role/aws-example-role" policies=namespace_tenant_1_admin max_ttl=50小时

正在关联特定资源必须生成凭据的权限。是的,您可以参考文档以获取更多信息。