前提
Terraformでiamユーザーを作成し、アクセスキーを発行させ、その値をparameter storeに保存したいです
実現したいこと
具体的に説明すると、ECSで立てたコンテナからs3へのアクセスするためのキーを発行したいのですが、手動で作成してアクセスキーをparameter storeに保存するとかせず、出来る限り、機密情報の取扱などを考えなくても済むよう、Terraformで一元管理をしたいと思っております。
TerraformでのIAMユーザーの作成、アクセスキー発行まではできました。
しかし、他のリソースから、アクセスキーの参照ができなくて困っております。
他のリソースから参照する方法が知りたいです。
例えば、local-execみたいなもので、outputを参照して、variableに代入するとか…
Terraform上で変数に代入して、参照させる方法とかあれば知りたいです。
一通り調べたのですが、よくわかりませんでした。
発生している問題・エラーメッセージ
shell
1╷ 2│ Error: Missing required argument 3│ 4│ with aws_ssm_parameter.system_user_access_id, 5│ on aws_ssm.tf line 25, in resource "aws_ssm_parameter" "system_user_access_id": 6│ 25: value = "${aws_iam_access_key.system_user_access_key.encrypted_secret}" 7│ 8│ The argument "value" is required, but no definition was found. 9╵
となってしまい、アクセスができません。
理由としては、
https://github.com/hashicorp/terraform-provider-aws/issues/780
仕様で敢えて、アクセスさせないようにするため?らしいです。
(余談:どのみち、gpgなどで暗号化しない限りはtfstateには直書きされてるので、こんな悪あがきをするくらいなら、普通にtfstateごと暗号化したりするなどしたほうがいいと思うのですがね…)
アクセスキー発行時は暗号化などはせずに、そのまま作成させてます。
terraform
1#============================================================ 2# ユーザー作成 3#============================================================ 4resource "aws_iam_user" "system_user" { 5 name = "${var.project_name}-user-test" 6} 7 8resource "aws_iam_user_login_profile" "system_user_profile" { 9 user = aws_iam_user.system_user.name 10 password_reset_required = false 11 depends_on = [aws_iam_user.system_user] 12} 13 14#============================================================ 15# アクセスキー作成 16#============================================================ 17resource "aws_iam_access_key" "system_user_access_key" { 18 user = aws_iam_user.system_user.name 19}
試したこと
- outputして、出力された値をどうにか参照しようと試行しましたができませんでした。
- python等スクリプトを組んで、local-execで実行しよか迷いましたが、そもそもスマートじゃないと思いやめました。
補足情報(FW/ツールのバージョンなど)
shell
1/terraform # terraform -v 2Terraform v1.1.9 3on linux_amd64 4+ provider registry.terraform.io/hashicorp/aws v4.13.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/11 07:26
2022/05/11 07:32
2022/05/11 07:44
2022/05/11 08:02
2022/05/11 08:59