はじめに
こんばんは。
今回は以下の本を読んで勉強中です。
前回の記事はこちら
今回は第12章です。
バージョンは以下です。
$ terraform --version Terraform v1.0.3
本題
第12章 設定管理
DBの設定情報などを管理・格納する SSM パラメータストアを学べます。
以前、僕使ったことありました。
コマンド操作
平文操作
# データ投入 $ aws ssm put-parameter --name 'plain_name' --value 'plain value' --type String { "Version": 1, "Tier": "Standard" } # データ取り出し 1 $ aws ssm get-parameter --output text --name 'plain_name' --query Parameter.Value plain value # データ更新 $ aws ssm put-parameter --name 'plain_name' --value 'modified value' --type String --overwrite { "Version": 2, "Tier": "Standard" } # データ取り出し 2 $ aws ssm get-parameter --output text --name 'plain_name' --query Parameter.Value modified value
Image
暗号化
# データ投入 $ aws ssm put-parameter --name 'encryption_name' --value 'encryption name' --type SecureString { "Version": 1, "Tier": "Standard" } # データ取り出し $ aws ssm get-parameter --output text --name 'encryption_name' --query Parameter.Value --with-decryption encryption name
Image
terraform修正
コード
# 平文登録 resource "aws_ssm_parameter" "db_username" { name = "/db/username" value = "root" type = "String" description = "データベースのユーザー名" } # 暗号化登録 resource "aws_ssm_parameter" "db_raw_password" { name = "/db/raw_password" value = "dummy_password" type = "SecureString" # 暗号化設定 description = "データベースのパスワード" # valueは更新しない lifecycle { ignore_changes = [value] } }
Images
パスワードのような秘匿性の高い情報は上記のコードみたいに、terraformのコードにはダミーのパスワードで登録して、後ほどコマンドでアップデートするという方式らしいです。
そりゃそうか。
終わりに
子供が家族が病気になったり、妻や自分のワクチン接種だったり、色々イベントがあってブログが定期的に書けてない。。。
今週から気合い入れて、勉強するぞ!
蛇足
そういえばこのツアーまじ行きたい