怎么搭建自己的网站平台,sem是什么电镜,wordpress远程发布文章,合肥网站搭建使用自Terraform 0.8起添加的Vault Provider后#xff0c;aws云基础设施尝试从Vault而不是tfvars或环境变量中读取AWS凭证。
1 什么是vault#xff1f;
vault是一种由Hashicorp发布的用于管理机密信息的工具。
2 aws使用Terraform的Vault Provider
2.1 创建静态密钥 以开…使用自Terraform 0.8起添加的Vault Provider后aws云基础设施尝试从Vault而不是tfvars或环境变量中读取AWS凭证。
1 什么是vault
vault是一种由Hashicorp发布的用于管理机密信息的工具。
2 aws使用Terraform的Vault Provider
2.1 创建静态密钥 以开发模式启动Vault。 在开发模式下机密会记录在内存中并在停止时清除。
$ vault server -dev
设置VAULT_ADDR环境变量以从客户端操作Vault。
$ export VAULT_ADDRhttp://127.0.0.1:8200
在开发模式下没有TLS并且您在启动时以Unseal或root用户身份登录。 在实际环境中访问保管库要求使用解锁密钥和用户身份验证进行解锁。 有关此区域的图像我认为您应该体验官方的交互式教程。
静态写入AWS访问密钥/秘密访问密钥。
$ vault write secret/aws_test access_keyxxxxxxxxxxxxxx secret_keyxxxxxxxxxxxxxxxxxxxxSuccess! Data written to: secret/aws_test
如果您不想将其保留在shell历史记录中请以JSON格式编写并使用指定文件
$ vault write secret/aws_test data.json
2.2 创建一个TF文件 vault_generic_secret使用数据源。 我使用Terraform Module Registry中的ec2-instance模块启动了EC2。
data vault_generic_secret aws_test {path secret/aws_test
}provider aws {access_key ${data.vault_generic_secret.aws_test.data[access_key]}secret_key ${data.vault_generic_secret.aws_test.data[secret_key]}region ap-northeast-1
}# fileter latest AMI
data aws_ami amazon_linux {most_recent truefilter {name namevalues [amzn-ami-hvm-*-x86_64-gp2,]}filter {name owner-aliasvalues [amazon,]}
}module ec2-instance {source terraform-aws-modules/ec2-instance/awsname aws_test_ec2count 1ami ${data.aws_ami.amazon_linux.id}instance_type t2.microkey_name keynamevpc_security_group_ids [sg-12345678]
}
2.3 运行
terraform initterraform planterraform apply
$terraform plan
Refreshing Terraform state in-memory prior to plan...
T he refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.data.vault_generic_secret.aws_test: Refreshing state...
data.aws_ami.amazon_linux: Refreshing state...
以下略..
如果未设置vault为unseal则将输出以下错误
$ terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.Error refreshing state: 1 error(s) occurred:* provider.vault: failed to create limited child token: Error making API request.URL: POST http://127.0.0.1:8200/v1/auth/token/create
Code: 503. Errors:* Vault is sealed 很重要的一点从vault读取的数据以明文形式记录在tfstate中。因此TFstate管理必须严格。