使用 Terraform 进行密钥管理
1. 密钥管理基础
密钥管理的首要规则是:切勿以明文形式存储密钥。再次强调,绝对不要这么做。例如,不要将数据库凭证硬编码到 Terraform 代码中并提交到版本控制系统,示例代码如下:
resource "aws_db_instance" "example" {
identifier_prefix = "terraform-up-and-running"
engine = "mysql"
allocated_storage = 10
instance_class = "db.t2.micro"
skip_final_snapshot = true
db_name = var.db_name
# DO NOT DO THIS!!!
username = "admin"
password = "password"
# DO NOT DO THIS!!!
}
以明文形式在版本控制系统中存储密钥存在诸多弊端:
- 访问权限无限制 :任何有权限访问版本控制系统的人都能获取该密钥。在上述示例中,公司里所有能访问该 Terraform 代码的开发人员都将获得数据库的主凭证。
- 多设备留存副本 :所有能访问版本控制系统的计算机都会保存该密钥的副本。包括团队中每个开发人员的计算机、参与持续集成(CI)的所有计算机(如 Jenkins、CircleCI、GitLab 等)、参与版本控
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



