

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

# 建立對稱加密 KMS 金鑰
<a name="create-symmetric-cmk"></a>

本主題說明如何建立基本 KMS 金鑰，這是具有金鑰材料之單一區域的[對稱加密 KMS](symm-asymm-choose-key-spec.md#symmetric-cmks) 金鑰 AWS KMS。您可使用此 KMS 金鑰來保護 AWS 服務中的資料。

您可以在 AWS KMS 主控台中使用 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API 或使用 [AWS::KMS::Key CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)。

預設金鑰規格 [SYMMETRIC\_DEFAULT](symm-asymm-choose-key-spec.md#symmetric-cmks) 是對稱加密 KMS 金鑰的金鑰規格。當您在 AWS KMS 主控台中選取**對稱**金鑰類型和**加密和解密**金鑰用量時，它會選取`SYMMETRIC_DEFAULT`金鑰規格。在 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 操作中，如果您不指定 `KeySpec` 值，即會選取 SYMMETRIC\_DEFAULT。如果沒有使用不同金鑰規格的理由，SYMMETRIC\_DEFAULT 是很好的選擇。

如需 KMS 金鑰配額的詳細資訊，請參閱 [配額](limits.md)。

## 使用 AWS KMS 主控台
<a name="create-keys-console"></a>

您可以使用 AWS 管理主控台 建立 AWS KMS keys (KMS 金鑰）。

**重要**  
請勿在別名、說明或標籤包含機密或敏感資訊。這些欄位可能在 CloudTrail 日誌與其他輸出中以純文字顯示。

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) 的 AWS Key Management Service (AWS KMS) 主控台。

1. 若要變更 AWS 區域，請使用頁面右上角的區域選擇器。

1. 在導覽窗格中，選擇 **Customer managed keys** (客戶受管金鑰)。

1. 選擇**建立金鑰**。

1. 若要建立對稱加密 KMS 金鑰，在 **Key type** (金鑰類型) 欄位中，選擇 **Symmetric** (對稱)。

1. 在 **Key usage** (金鑰用途) 欄位中，系統會自動選取 **Encrypt and decrypt** (加密和解密) 選項。

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

1. 輸入 KMS 金鑰的別名。別名名稱的開頭不可以是 **aws/**。字**aws/**首由 Amazon Web Services 保留，以在您的帳戶 AWS 受管金鑰 中代表 。
**注意**  
新增、刪除或更新別名可允許或拒絕 KMS 金鑰的許可。如需詳細資訊，請參閱 [適用於 的 ABAC AWS KMS](abac.md) 和 [使用別名來控制對 KMS 金鑰的存取](alias-authorization.md)。

    別名是您可用來識別 KMS 金鑰的顯示名稱。我們建議您選擇別名來表示您計劃保護的資料類型，或您計劃搭配 KMS 金鑰一起使用的應用程式。

    

    在 AWS 管理主控台中建立 KMS 金鑰時需要別名。但在使用 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 操作時是選用的。

1. (選用) 輸入 KMS 金鑰的描述。

   您可以立即新增描述或在任意時間更新，除非[金鑰狀態](key-state.md)為 `Pending Deletion` 或 `Pending Replica Deletion`。若要新增、變更或刪除現有客戶受管金鑰的描述，請在 中編輯 KMS 金鑰詳細資訊頁面上的描述， AWS 管理主控台 或使用 [UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html) 操作。

1. (選用) 輸入標籤索引鍵和選用標籤值。若要將其他標籤新增至 KMS 金鑰，請選擇 **Add tag** (新增標籤)。
**注意**  
標記或取消標記 KMS 金鑰可以允許或拒絕 KMS 金鑰的許可。如需詳細資訊，請參閱 [適用於 的 ABAC AWS KMS](abac.md) 和 [使用標籤來控制對 KMS 金鑰的存取](tag-authorization.md)。

   當您將標籤新增至 AWS 資源時， AWS 會產生成本分配報告，其中包含依標籤彙總的用量和成本。標籤也可以用來控制 KMS 金鑰的存取。如需標記 KMS 金鑰的詳細資訊，請參閱 [中的標籤 AWS KMS](tagging-keys.md) 和 [適用於 的 ABAC AWS KMS](abac.md)。

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

1. 選取可管理 KMS 金鑰的 IAM 使用者和角色。
**備註**  
此金鑰政策提供此 KMS 金鑰的完整 AWS 帳戶 控制權。它允許帳戶管理員使用 IAM 政策授予其他主體管理 KMS 金鑰的許可。如需詳細資訊，請參閱[預設金鑰政策](key-policy-default.md)。  
IAM 最佳實務不建議使用具有長期憑證的 IAM 使用者。盡可能使用提供臨時憑證的 IAM 角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 中的安全性最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。  
 AWS KMS 主控台會將金鑰管理員新增至陳述式識別碼 下的金鑰政策`"Allow access for Key Administrators"`。修改此陳述式識別符可能會影響主控台顯示您對陳述式所做的更新。

1. (選用) 為了防止選取的 IAM 使用者和角色刪除此 KMS 金鑰，請在頁面底部的 **Key deletion** (金鑰刪除) 區段中，清除 **Allow key administrators to delete this key** (允許金鑰管理員刪除此金鑰) 核取方塊。

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

1. 選取可將金鑰用於[密碼編譯操作](kms-cryptography.md#cryptographic-operations)的 IAM 使用者和角色
**備註**  
IAM 最佳實務不建議使用具有長期憑證的 IAM 使用者。盡可能使用提供臨時憑證的 IAM 角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 中的安全性最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。  
 AWS KMS 主控台會將金鑰使用者新增至陳述式識別碼 `"Allow use of the key"`和 下的金鑰政策`"Allow attachment of persistent resources"`。修改這些陳述式識別符可能會影響主控台顯示您對陳述式所做的更新的方式。

1. （選用） 您可以允許其他 AWS 帳戶 使用此 KMS 金鑰進行密碼編譯操作。若要這樣做，請在頁面底部的**其他 AWS 帳戶**區段中，選擇**新增另一個 AWS 帳戶** ，然後輸入外部帳戶的 AWS 帳戶 識別號碼。若要新增多個外部帳戶，請重複此步驟。
**注意**  
若要允許外部帳戶中的主體使用 KMS 金鑰，外部帳戶的管理員必須建立 IAM 政策來提供這些許可。如需詳細資訊，請參閱[允許其他帳戶中的使用者使用 KMS 金鑰](key-policy-modifying-external-accounts.md)。

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

1. 檢閱金鑰的金鑰政策陳述式。若要變更金鑰政策，請選取**編輯**。

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

1. 檢閱您選擇的金鑰設定。您仍然可以返回並變更所有設定。

1. 選擇 **Finish** (完成) 來建立 KMS 金鑰。

## 使用 AWS KMS API
<a name="create-keys-api"></a>

您可以使用 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) AWS KMS keys 操作來建立所有類型的 。這些範例使用 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)。如需多種程式設計語言的範例，請參閱[`CreateKey` 搭配 AWS SDK 或 CLI 使用](example_kms_CreateKey_section.md)。

**重要**  
請勿在 `Description` 或 `Tags` 欄位包含機密或敏感資訊。這些欄位可能在 CloudTrail 日誌與其他輸出中以純文字顯示。

下列操作會在由 產生的金鑰材料支援的單一區域中建立對稱加密金鑰 AWS KMS。此操作沒有必要參數。但您可能還想要使用 `Policy` 參數指定金鑰政策。您隨時可以變更金鑰政策 ([PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)) 並新增選用元素，例如[描述](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)和[標籤](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html)。您還可以建立[非對稱金鑰](asymm-create-key.md#create-asymmetric-keys-api)、[多區域金鑰](create-primary-keys.md)、[匯入金鑰資料](importing-keys-create-cmk.md#importing-keys-create-cmk-api)中的金鑰，以及[自訂金鑰存放區](create-cmk-keystore.md#create-cmk-keystore-api)中的金鑰。若要建立用於用戶端加密的資料金鑰，請使用 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 操作。

`CreateKey` 操作不允許您指定別名，但您可以使用 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) 操作來建立新 KMS 金鑰的別名。

以下範例呼叫 `CreateKey` 操作，不帶參數。這個命令會使用所有的預設值。其會使用 AWS KMS產生的金鑰資料來建立對稱加密 KMS 金鑰。

```
$ aws kms create-key
{
    "KeyMetadata": {
        "Origin": "AWS_KMS",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "KeySpec": "SYMMETRIC_DEFAULT",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1502910355.475,
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "MultiRegion": false
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
    }
}
```

如果您不為您的新 KMS 金鑰指定金鑰政策，則在用其建立新 KMS 金鑰時，`CreateKey` 套用的[預設金鑰政策](key-policy-default.md)會不同於主控台套用的預設金鑰政策。

例如，呼叫 [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html) 操作會傳回 `CreateKey` 套用的金鑰政策。它提供 KMS 金鑰的 AWS 帳戶 存取權，並允許它為 KMS 金鑰建立 AWS Identity and Access Management (IAM) 政策。如需有關 KMS 金鑰之 IAM 政策和金鑰政策的詳細資訊，請參閱 [KMS 金鑰存取和許可](control-access.md)。

```
$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text
```

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id" : "key-default-1",
  "Statement" : [ {
    "Sid" : "EnableIAMUserPermissions",
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "arn:aws:iam::{{111122223333}}:root"
    },
    "Action" : "kms:*",
    "Resource" : "*"
  } ]
}
```

------