

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 產生隨機密碼 AWS Secrets Manager
<a name="generate-random-passwords"></a>

 AWS Well-Architected Framework 建議您[安全地存放和使用秘密](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_identities_secrets.html)。您可以使用 AWS Secrets Manager API 來產生隨機密碼，也可以自訂密碼複雜性要求。`GetRandomPassword` 動作支援介於 1 到 4，096 個字元之間的密碼字串長度。如需詳細資訊，請參閱 *AWS Secrets Manager API 參考*中的 [GetRandomPassword](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetRandomPassword.html)。我們建議您使用此方法來產生秘密，而不是允許使用者手動定義秘密。

下列程式碼範例示範如何產生長度為 20 個字元的隨機密碼，其中包含數字、排除標點符號字元，以及排除空格。您可以修改此程式碼範例，以符合組織的密碼安全需求。

```
data "aws_secretsmanager_random_password" "test" { 
password_length = 20 
exclude_numbers = false 
exclude_punctuation = true 
include_space = false 
}
```

在部署 IaC 時使用隨機秘密產生，可協助您從一開始就保護敏感資料，也就是*零小時*。從部署階段開始，任何人都不會知道敏感資料。



![\[Terraform 使用 AWS Secrets Manager 來建立和使用隨機秘密。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/secure-sensitive-data-secrets-manager-terraform/images/terraform-get-secrets-from-secrets-manager.png)


1. 透過 Terraform，使用 AWS Secrets Manager 產生隨機密碼秘密。

1. Terraform 使用此儲存在 中的隨機密碼秘密 AWS Secrets Manager來存取資料庫。

**重要**  
當您使用 Terraform做為資料來源時，秘密不會存放在 [狀態檔案中](https://developer.hashicorp.com/terraform/language/state)。但是，在您將該秘密用於資料庫或任何服務之後，它會存放在 狀態檔案中。我們建議您立即輪換秘密，或建立非常嚴格的許可來存取狀態檔案。如需詳細資訊，請參閱本指南中的 [保護 Terraform 狀態檔案中的敏感資料](terraform-state-file.md)。