Я пытаюсь правильно настроить свою инфраструктуру без паролей и ключей.AWS RDS имеет возможность сделать это, позволяя пользователям (приложениям) проходить аутентификацию с помощью сгенерированных токенов.
Однако в документации один из шагов ( этот ) требует запусказапрос в базе данных Postgres, чтобы создать пользователя и предоставить ему определенные разрешения:
CREATE USER test_rds WITH LOGIN;
GRANT rds_iam TO test_rds;
Я хочу предоставить весь стек Terraform.Я искал несколько «хаков» для запуска запроса ( здесь ) после создания экземпляра RDS, используя:
resource "null_resource" "db_setup" {
depends_on = ["aws_db_instance.your_database_instance", "aws_security_group.sg_allowing_external_access"]
provisioner "local-exec" {
// run shell commands to manually psql into the db
или:
resource "aws_instance" "web" {
provisioner "remote-exec" {
inline = [
// run shell commands to manually psql into the db
, но обаиз них требуется создать мастер-пароль и каким-то образом передать его внутри «сценариев».
Можно ли сделать это с помощью Terraform чисто, без передачи жестко закодированных паролей?
Я хотел бы подготовить базу данных и разрешить доступ к ней только определенным экземплярам EC2 / ECS с правильными разрешениями без каких-либо паролей в моем git-репозитории.