6章シークレットを管理する
ある時点で、あなたとあなたのソフトウェアには、データベースのパスワード、APIキー、TLS証明書、SSHキー、GPGキーなどといったさまざまなシークレットが預けられることになります。これらはすべて機密データであり、間違った人の手にわたってしまうと、会社あるいは顧客に大きなダメージが及ぶでしょう。ソフトウェアを作るなら、これらのシークレットをセキュアに扱うことはあなたの責任です。
データベースをデプロイする次のような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 # これらのパラメータをセキュアに設定するには? username = "???" password = "???" }
このコードでは、データベースのマスタユーザの認証情報であるユーザ名とパスワードという2つのシークレットを設定する必要があります。この認証情報を使うとデータベースとデータベース上のデータすべてにアクセスできるスーパーユーザ権限が得られてしまうので、この情報に悪意ある人がアクセスしてしまうと、壊滅的な障害になる可能性があります。では、これらのシークレットはどのように格納したらよいのでしょうか。
これは、シークレット管理(secrets management)という幅広いトピックであり、この章が焦点を当てるところでもあります。この章では次のことを取り上げます。 ...
Get 詳解 Terraform 第3版 ―Infrastructure as Codeを実現する now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.