簡體   English   中英

Terraform 和 AWS 機密

[英]Terraform and AWS secrets

我一定遺漏了一些關於如何通過 Terraform 訪問 AWS 機密的信息。這是我正在努力解決的場景:

  • 我創建了一個名為“infra_user”的 IAM 用戶,為該用戶創建 ID 和秘密訪問密鑰,以純文本格式下載這些值。

  • “infra_user”將用於通過 terraform 進行身份驗證以配置資源,比方說 S3 和 EC2 實例。

  • 為了保護“infra_user”的 ID 和密鑰,我將它們存儲在 AWS secrets manager 中。

  • 為了在我的 terraform 腳本中使用“infra_user”進行身份驗證,我需要通過以下塊檢索機密:

     data "aws_secretsmanager_secret" "arn" { arn = "arn:aws:secretsmanager:us-east-1:123456789012:secret:example-123456" }

但是,即使在我的腳本中使用數據塊並檢索機密,在我聲明任何資源之前,我不需要在我的提供程序塊中以其他方式向 AWS 進行身份驗證嗎? 如果我創建另一個用戶,比如“tf_user”,只是為了檢索秘密,我應該將“tf_user”的訪問密鑰存儲在哪里? 如何避免這種循環身份驗證循環?

Terraform AWS 提供商文檔有一個關於身份驗證和配置的部分,並列出了提供商如何發現要使用的憑證的優先順序。 您可以選擇最適合您的用例的方法。

例如,一種(不安全的)方法是直接在提供程序中設置憑據:

provider "aws" {
  region     = "us-west-2"
  access_key = "my-access-key"
  secret_key = "my-secret-key"
}

或者,您可以在 shell 中設置環境變量:

export AWS_ACCESS_KEY_ID="my-access-key"
export AWS_SECRET_ACCESS_KEY="my-secret-key"
export AWS_DEFAULT_REGION="us-west-2"

現在您的提供程序塊簡化為:

provider "aws" {}

當您運行terraform命令時,它將自動使用您環境中的憑據。

或者作為另一種選擇,您可以將憑證存儲在配置文件配置文件中,並通過設置AWS_PROFILE環境變量來選擇要使用的配置文件。

身份驗證比乍看起來更復雜和可配置,所以我鼓勵您閱讀文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM