限制对机密的访问 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

限制对机密的访问

安全是重中之重 AWS。在 Wel AWS l-Architected Framework 中,安全存储和使用机密最佳实践建议您限制对机密的访问权限、记录和审核对机密的访问权限,并建议您通过 API 而不是向个人授予访问权限。这与使用生成随机密码有关 AWS Secrets Manager,本指南前面已经讨论过。

过去,用于对数据库、第三方 APIs、令牌和其他机密进行身份验证的凭据可能嵌入在源代码或环境文件中。在许多组织中,数据库管理员仍然可以访问所有数据库用户凭据。但是,如果他们不这样做,那就更安全了。我们建议您:

以下代码示例显示了在创建数据库时可以用来保护敏感数据的方法。创建数据库时,可以要求用户输入作为密码,然后轮换密码,也可以从一开始就使用随机密码。从一开始就生成随机密码可以帮助您更安全地处理和管理凭证。

以下代码片段创建数据库资源,并从局部password = local.passwddata变量中获取密码。

resource "aws_db_instance" "default" { count = var.createdb == true ? 1 : 0 allocated_storage = 20 identifier = var.identifier db_name = var.databasename engine = "mysql" engine_version = "8.0.32" instance_class = "db.t3.micro" username = "admin" password = local.passwddata skip_final_snapshot = true publicly_accessible = false vpc_security_group_ids = [aws_security_group.db.id] db_subnet_group_name = aws_db_subnet_group.db.0.name }

以下代码片段创建随机密码或接受用户提供的密码。 Terraform将此密码存储为局部变量,以便稍后在代码中使用此密码变量。

locals { passwddata = var.passwddata != null ? var.passwddata : data.aws_secretsmanager_random_password.test.random_secrets }