1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AWS】【SSM】【Terraform】環境変数の管理

Last updated at Posted at 2020-07-20

DBのホスト名、ユーザー名、パスワードを環境変数で管理する場合

AWS SSMパラメータストアを用いて管理すると良い
コンソールやaws-cliから登録できる

aws-cli
# 暗号化した値(--type SecureString)を保存するときに叩くコマンド
$ aws ssm put-parameter --name 'name' --value 'password' --type SecureString

# 暗号化した値を複合して(--with-decryption)参照するときに叩くコマンド
$ aws ssm get-parameter --output text --query Parameter.Value --name 'name' --with-decryption
=> password

Terraformによるコード化を行う場合の注意点

暗号化するコードがソースコードに平文で書かれてしまうと暗号化する意味がなくなってしまうので、Terraformではダミーの値を設定して、あとでaws-cliから更新する戦略が有効。

ssm.tf
resource "aws_ssm_parameter" "db_password" {
  name = "/db/password"
  value = "password"
  type = "SecureString"
  description = "DB_PASSWORD"

  lifecycle {
    ignore_changes = [value] # 上書きして変更するので無視する
  }
}
aws-cli
$ aws ssm put-parameter --name 'db/password' --type 'SecureString' --value 'overwrite-password' --overwrite

参考

実践Terraform AWSにおけるシステム設計とベストプラクティス
Resource: aws_ssm_parameter
AWS CLI Command Reference

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?