

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

# 建立 AWS Secrets Manager 秘密
<a name="create_secret"></a>

*秘密*可以是以加密形式存放在 Secrets Manager 中的一個密碼、一組憑證，例如使用者名稱和密碼、OAuth 字符或其他秘密資訊。

**提示**  
對於 Amazon RDS 和 Amazon Redshift 管理員使用者憑證，我們建議您使用 [受管秘密](service-linked-secrets.md)。您可以透過 管理服務建立 受管秘密，然後使用 [受管輪換](rotate-secrets_managed.md)。

當您使用 主控台存放複寫至其他 區域的來源資料庫的資料庫登入資料時，秘密會包含來源資料庫的連線資訊。如果隨後複製機密，則複本是來源機密的副本，並包含相同的連線資訊。您可以將其他金鑰/值對新增到區域連線資訊的機密。

若要建立秘密，您需要 [SecretsManagerReadWrite 受管政策](reference_available-policies.md)授予的許可。

建立機密時，Secrets Manager 會產生 CloudTrail 日誌項目。如需詳細資訊，請參閱[使用 記錄 AWS Secrets Manager 事件 AWS CloudTrail](monitoring-cloudtrail.md)。

**若要建立秘密 (主控台)**

1. 前往以下位置開啟機密管理員控制台：[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 選擇 **Store a new secret** (存放新機密)。

1. 在 **Choose secret type** (選擇秘密類型) 頁面上，執行下列動作：

   1. 針對 **Secret Type** (秘密類型)，執行下列其中一項操作：
      + 若要存放資料庫登入資料，請選擇要存放的資料庫登入資料類型。然後選擇**資料庫**，然後輸入**登入**資料。
      + 若要存放 API 金鑰、存取權杖、非資料庫的登入資料，請選擇**其他類型的秘密**。

        在**鍵值對**中，您可以在 JSON **鍵值**對中輸入秘密，也可以先選擇**純文字**索引標籤，再以任何格式輸入秘密。秘密當中最多可以存放 65536 個位元組。一些範例：

------
#### [ API key ]

        輸入 做為鍵/值對：

        **ClientID**：*my\$1client\$1id*

        **ClientSecret** : *wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY*

------
#### [ OAuth token ]

        以純文字輸入：

        *AKIAI44QH8DHBEXAMPLE*

------
#### [ Digital certificate ]

        以純文字輸入：

        ```
        -----BEGIN CERTIFICATE-----
        EXAMPLE
        -----END CERTIFICATE-----
        ```

------
#### [ Private key ]

        以純文字輸入：

        ```
        –--- BEGIN PRIVATE KEY ----
        EXAMPLE
        ––-- END PRIVATE KEY –---
        ```

------
      + 若要儲存 Secrets Manager 合作夥伴的受管外部秘密，請選擇**合作夥伴秘密**。然後選擇合作夥伴，並提供識別合作夥伴秘密的詳細資訊。如需詳細資訊，請參閱[使用 AWS Secrets Manager 受管外部秘密來管理第三方秘密](managed-external-secrets.md)。

   1. 針對**加密金鑰**，選擇 AWS KMS key Secrets Manager 用來加密秘密值的 。如需詳細資訊，請參閱[秘密加密和解密](security-encryption.md)。
      + 在大多數情況下，選擇 **aws/secretsmanager** 以使用 AWS 受管金鑰 Secrets Manager 的 。使用此金鑰無需任何成本。
      + 如果您需要從另一個 存取秘密 AWS 帳戶，或者如果您想要使用自己的 KMS 金鑰來輪換秘密或套用金鑰政策，請從清單中選擇客戶受管金鑰、輸入客戶受管金鑰的金鑰 ARN 或別名 ARN，或選擇**新增金鑰**以建立秘密。如需有關使用客戶受管金鑰的成本的資訊，請參閱 [定價](intro.md#asm_pricing)。

        您必須擁有[KMS 金鑰的許可](security-encryption.md#security-encryption-authz)。如需跨帳户存取權的詳細資訊，請參閱[從不同帳戶存取 AWS Secrets Manager 秘密](auth-and-access_examples_cross.md)。

   1. 選擇**下一步**。

1. 在 **Configure secret** (設定秘密) 頁面上，執行下列動作：

   1. 輸入描述性的 **Secret name** (機密名稱) 和 **Description** (描述)。秘密名稱可包含 1-512 個英數字元和 /\$1\$1=.@- 字元。

   1. （選用） 如果您已建立外部秘密，請輸入持有秘密的 Secrets Manager 合作夥伴所需的中繼資料。

   1. (選用) 在 **Tags** (標籤) 區段，將標籤新增到秘密。如需標記策略，請參閱 [在 中標記秘密 AWS Secrets Manager](managing-secrets_tagging.md)。請勿在標籤中存放敏感資訊，因為標籤並未加密。

   1. (選用) 若要將資源政策新增至秘密，請在 **Resource permissions** (資源使用權限) 中選擇 **Edit permissions** (編輯許可)。如需詳細資訊，請參閱[資源型政策](auth-and-access_resource-policies.md)。

   1. （選用） 在**複寫秘密**中，若要將秘密複寫至另一個秘密 AWS 區域，請選擇**複寫秘密**。您可以立即複寫秘密，也可以稍後返回複寫。如需詳細資訊，請參閱[多區域複寫](replicate-secrets.md)。

   1. 選擇**下一步**。

1. (選用) 在 **Configure rotation** (設定輪換) 頁面上，可開啟自動輪換。您也可以暫時關閉輪換，稍後再將其開啟。如需詳細資訊，請參閱[輪換 秘密](rotating-secrets.md)。選擇**下一步**。

1. 在 **Review** (檢閱) 頁面上，檢閱機密詳細資訊，然後選擇 **Store** (存放)。

   Secrets Manager 會傳回秘密清單。如果您的新秘密沒有顯示，請選擇重新整理按鈕。

## AWS CLI
<a name="create_secret_cli"></a>

在命令 shell 中輸入命令時，存在命令歷史記錄被存取或公用程式存取命令參數的風險。請參閱 [降低使用 AWS CLI 存放 AWS Secrets Manager 秘密的風險](security_cli-exposure-risks.md)。

**Example 從 JSON 檔案中的資料庫登入資料建立秘密**  
下列 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/secretsmanager/create-secret.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/secretsmanager/create-secret.html) 範例會透過檔案中的憑證建立機密。如需詳細資訊，請參閱 AWS CLI 《 使用者指南》中的[從檔案載入 AWS CLI 參數](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html)。  
為了使 Secrets Manager 能夠輪換秘密，您必須確保 JSON 與 [機密的 JSON 結構](reference_secret_json_structure.md) 相符。  

```
aws secretsmanager create-secret \
    --name MyTestSecret \
    --secret-string file://mycreds.json
```
mycreds.json 的內容：  

```
{
    "engine": "mysql",
    "username": "saanvis",
    "password": "EXAMPLE-PASSWORD",
    "host": "my-database-endpoint.us-west-2.rds.amazonaws.com",
    "dbname": "myDatabase",
    "port": "3306"
}
```

**Example 建立秘密**  
下列 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/secretsmanager/create-secret.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/secretsmanager/create-secret.html) 範例會建立具有兩個金鑰值對的機密。  

```
aws secretsmanager create-secret \
    --name MyTestSecret \
    --description "My test secret created with the CLI." \
    --secret-string '{"user":"diegor","password":"EXAMPLE-PASSWORD"}'
```

**Example 建立秘密**  
下列[https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/create-secret.html](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/create-secret.html)範例會建立具有兩個標籤的秘密。  

```
aws secretsmanager create-secret \
    --name MyTestSecret \
    --description "My test secret created with the CLI." \
    --secret-string '{"user":"diegor","password":"EXAMPLE-PASSWORD"}'  \
    --tags '[{"Key": "FirstTag", "Value": "FirstValue"}, {"Key": "SecondTag", "Value": "SecondValue"}]'
```

## AWS 開發套件
<a name="create_secret_sdk"></a>

若要使用其中一個 AWS SDKs建立秘密，請使用 [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)動作。如需詳細資訊，請參閱[AWS SDKs](asm_access.md#asm-sdks)。