

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

# 開始使用 AWS 付款密碼編譯
<a name="getting-started"></a>

若要開始使用 AWS 付款密碼編譯，您必須先建立金鑰，然後在各種密碼編譯操作中使用它們。以下教學課程提供簡單的使用案例，以產生用於產生/驗證 CVV2 值的金鑰。若要嘗試其他範例並探索 AWS 內的部署模式，請嘗試下列[AWS 付款密碼編譯研討會，](https://catalog.us-east-1.prod.workshops.aws/workshops/b85843d4-a5e4-40fc-9a96-de0a99312a4b/en-US)或探索 [GitHub](https://github.com/aws-samples/samples-for-payment-cryptography-service) 上可用的範例專案 

本教學課程會逐步引導您建立單一金鑰，並使用 金鑰執行密碼編譯操作。之後，如果您不想再刪除金鑰，則會刪除金鑰，這會完成金鑰生命週期。

**警告**  
 本使用者指南中的範例可能會使用範例值。我們*強烈建議*不要在生產環境中使用範例值，例如金鑰序號。

**Topics**
+ [先決條件](#getting-started-prerequisites)
+ [步驟 1：建立金鑰](#getting-started-step1)
+ [步驟 2：使用 金鑰產生 CVV2 值](#getting-started-step2)
+ [步驟 3：驗證步驟 2 中產生的值](#getting-started-step3)
+ [步驟 4：執行陰性測試](#getting-started-step4)
+ [步驟 5：（選用） 清除](#getting-started-cleanup)

## 先決條件
<a name="getting-started-prerequisites"></a>

在開始之前，請確認：
+ 您有權存取 服務。如需詳細資訊，請參閱 [IAM 政策](security_iam_service-with-iam.md)。
+ 您已[AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)安裝 。您也可以使用 [AWS SDKs](https://aws.amazon.com/developer/tools/) 或 [AWS APIs](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/Welcome.html) 來存取 AWS 付款密碼編譯，但本教學中的指示會使用 AWS CLI。

## 步驟 1：建立金鑰
<a name="getting-started-step1"></a>

第一步是建立金鑰。在本教學課程中，您會建立 [CVK](terminology.md#terms.cvk) 雙長度 3DES (2KEY TDES) 金鑰來產生和驗證 CVV/CVV2 值。

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}'
```

回應會回傳請求參數，包括後續呼叫的 ARN 以及金鑰檢查值 (KCV)。

```
{
    "Key": {
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
        "KeyAttributes": {
            "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyAlgorithm": "TDES_2KEY",
            "KeyModesOfUse": {
                "Encrypt": false,
                "Decrypt": false,
                "Wrap": false,
                "Unwrap": false,
                "Generate": true,
                "Sign": false,
                "Verify": true,
                "DeriveKey": false,
                "NoRestrictions": false
            }
        },
        "KeyCheckValue": "CADDA1",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "Enabled": true,
        "Exportable": true,
        "KeyState": "CREATE_COMPLETE",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00",
        "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00"
    }
}
```

請記下代表金鑰`KeyArn`的 ，例如 *arn：aws：payment-cryptography：us-east-2：111122223333：key/tqv5yij6wtxx64pi*。在下一個步驟中，您需要用到。

## 步驟 2：使用 金鑰產生 CVV2 值
<a name="getting-started-step2"></a>

在此步驟中，您會使用步驟 1 中的 金鑰，為指定`PAN`和過期日期產生 CVV2。

```
$  aws payment-cryptography-data generate-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --primary-account-number=171234567890123 \
    --generation-attributes CardVerificationValue2={CardExpiryDate=0123}
```

```
{
    "CardDataGenerationKeyCheckValue": "CADDA1",
    "CardDataGenerationKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "CardDataType": "CARD_VERIFICATION_VALUE_2",
    "CardDataValue": "144"
}
```

請記下 `cardDataValue`，在此例中為 3 位數字 144。在下一個步驟中，您需要用到。

## 步驟 3：驗證步驟 2 中產生的值
<a name="getting-started-step3"></a>

在此範例中，您可以使用您在步驟 1 中建立的金鑰來驗證步驟 2 的 CVV2。

執行下列命令來驗證 CVV2。

```
$  aws payment-cryptography-data  verify-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --primary-account-number=171234567890123 \
    --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \
    --validation-data 144
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "CADDA1"
}
```

服務傳回 200 的 HTTP 回應，表示已驗證 CVV2。

## 步驟 4：執行陰性測試
<a name="getting-started-step4"></a>

在此步驟中，您會建立陰性測試，其中 CVV2 不正確且未驗證。您嘗試使用您在步驟 1 中建立的金鑰來驗證不正確的 CVV2。這是預期的操作，例如，如果持卡人在結帳時輸入錯誤的 CVV2。

```
$  aws payment-cryptography-data  verify-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --primary-account-number=171234567890123 \
    --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \
    --validation-data 999
```

```
Card validation data verification failed.
```

服務傳回 400 的 HTTP 回應，其中包含「卡片驗證資料驗證失敗」訊息，以及 INVALID\$1VALIDATION\$1DATA 的原因。

## 步驟 5：（選用） 清除
<a name="getting-started-cleanup"></a>

現在您可以刪除在步驟 1 中建立的金鑰。若要將無法復原的變更降至最低，預設金鑰刪除期間為七天。

```
$ aws payment-cryptography delete-key \
    --key-identifier=arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi
```

```
{
    "Key": {
        "CreateTimestamp": "2022-10-27T08:27:51.795000-07:00",
        "DeletePendingTimestamp": "2022-11-03T13:37:12.114000-07:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
        "KeyAttributes": {
            "KeyAlgorithm": "TDES_3KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyModesOfUse": {
                "Decrypt": true,
                "DeriveKey": false,
                "Encrypt": true,
                "Generate": false,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": true,
                "Verify": false,
                "Wrap": true
            },
            "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY"
        },
        "KeyCheckValue": "CADDA1",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "DELETE_PENDING",
        "UsageStartTimestamp": "2022-10-27T08:27:51.753000-07:00"
    }
}
```

請記下輸出中的兩個欄位。預設為未來的`deletePendingTimestamp`七天。keyState 設定為 `DELETE_PENDING`。您可以在排定的刪除時間之前隨時呼叫 來取消此刪除[https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/restore-key.html](https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/restore-key.html)。