

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# を使用したランダムなパスワードの生成 AWS Secrets Manager
<a name="generate-random-passwords"></a>

 AWS Well-Architected フレームワークでは、[シークレットを安全に保存して使用することを推奨しています](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/ja_jp/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)」を参照してください。