もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

実践 Terraformを読んでTerraform勉強中 Vol.9

はじめに

こんばんは。

今回は以下の本を読んで勉強中です。

前回の記事はこちら

kojirooooocks.hatenablog.com

kojirooooocks.hatenablog.com

kojirooooocks.hatenablog.com

kojirooooocks.hatenablog.com

kojirooooocks.hatenablog.com

kojirooooocks.hatenablog.com

kojirooooocks.hatenablog.com

kojirooooocks.hatenablog.com

今回は第12章です。

バージョンは以下です。

$ terraform --version
Terraform v1.0.3

本題

第12章 設定管理

DBの設定情報などを管理・格納する SSM パラメータストアを学べます。

以前、僕使ったことありました。

kojirooooocks.hatenablog.com

コマンド操作

平文操作

# データ投入
$ 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

f:id:kojirooooocks:20211012001516p:plain

暗号化

# データ投入
$ 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

f:id:kojirooooocks:20211012001805p:plain

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

f:id:kojirooooocks:20211012002658p:plain f:id:kojirooooocks:20211012002700p:plain

パスワードのような秘匿性の高い情報は上記のコードみたいに、terraformのコードにはダミーのパスワードで登録して、後ほどコマンドでアップデートするという方式らしいです。

そりゃそうか。

終わりに

子供が家族が病気になったり、妻や自分のワクチン接種だったり、色々イベントがあってブログが定期的に書けてない。。。

今週から気合い入れて、勉強するぞ!

蛇足

そういえばこのツアーまじ行きたい

www.reuniontour.jp