

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Payment Cryptography 시작하기
<a name="getting-started"></a>

 AWS Payment Cryptography를 시작하려면 먼저 키를 생성한 다음 다양한 암호화 작업에 사용해야 합니다. 아래 자습서에서는 CVV2 값을 생성/확인하는 데 사용할 키를 생성하는 간단한 사용 사례를 제공합니다. 다른 예제를 시도하고 AWS 내에서 배포 패턴을 살펴보려면 다음 [AWS Payment Cryptography 워크숍](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 Payment Cryptography에 액세스할 수도 있지만이 자습서의 지침은를 사용합니다 AWS CLI.

## 1단계: 키 생성
<a name="getting-started-step1"></a>

첫 번째 단계는 키를 만드는 것입니다. 이 자습서에서는 CVV/CVV2 값을 생성하고 확인하기 위한 [CVK](terminology.md#terms.cvk) 이중 길이 3DES(2KEY TDES) 키를 생성합니다.

```
$ 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"
}
```

이 서비스는 CVV2를 검증했음을 나타내는 HTTP 응답 200을 반환합니다.

## 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.
```

이 서비스는 “카드 검증 데이터 확인에 실패했습니다”라는 메시지와 INVALID\$1VALIDATION\$1DATA라는 사유와 함께 400의 HTTP 응답을 반환합니다.

## 5단계: (선택 사항) 정리
<a name="getting-started-cleanup"></a>

이제 1단계에서 생성한 키를 삭제할 수 있습니다. 복구할 수 없는 변경 사항을 최소화하기 위한 기본 키 삭제 기간은 7일입니다.

```
$ 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`는 기본적으로 향후 7일로 설정되어 있습니다. 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)를 호출하여 예정된 삭제 시간 전에 언제든지 이 삭제를 취소할 수 있습니다.