terraformでaws access_key, secret_keyの指定方法
個人的備忘録。本家のドキュメントが英語なので。
IAMの指定の仕方はいくつかある
- tfファイルに直書きする
- コマンド実行時にオプションで渡す
- ファイルに書いておく
1. tfファイルに直書きする
本家のexampleに一番最初に出てくる書き方。
どやーってgithubとかに上げたら後悔するやつ。
$ cat example.tf provider "aws" { access_key = "hogeo" secret_key = "hogeo_secret" region = "ap-northeast-1" }
2. コマンド実行時にオプションで渡す
variables.tfをつくる
$ cat variables.tf variable "access_key" {} variable "secret_key" {} variable "region" { default = "ap-northeast-1" }
example.tfは変数に置き換える。
$ cat example.tf provider "aws" { access_key = "${var.access_key}" secret_key = "${var.secret_key}" region = "${var.region}" }
apply実行時に-varオプションで渡す。
$ terraform apply -var 'access_key=hogeo' -var 'secret_key=hogeo_secret'
オプション忘れても、入力待ちになる
$ terraform apply var.access_key Enter a value:
3. ファイルに書いておく
variables.tf書くのと、example.tfの変数化までは一緒だけど、コマンドラインのオプションで渡すんじゃなくて、ファイルに書くパターン。
terraform.tfvarsというファイル名をカレントにおいて、中にaccess_key, secret_keyを書くことで、IAMをレシピ?に書かずに済む。
$ cat terraform.tfvars access_key = "hogeo" secret_key = "hogeo_secret"
terraform.tfvarsというファイル名じゃないと、勝手に読んでくれないので、別のファイル名にしたいときは-var-fileオプションで指定してあげる。
↓はファイル名に「_org」とかつけちゃったのd、-var-fileオプションで指定したとき。
$ terraform destroy -var-file="terraform.tfvars_org"
今日はここまで。全然進まない。。。
本日の一言
勉強してると、部屋の片づけ始めて、カメラのSDカードとか見つかっちゃって、いつの間にか昔の写真見返して時間が過ぎてるよね。