

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

# AWS SDK 또는 CLI와 `GenerateRandom` 함께 사용
<a name="example_kms_GenerateRandom_section"></a>

다음 코드 예시는 `GenerateRandom`의 사용 방법을 보여 줍니다.

------
#### [ CLI ]

**AWS CLI**  
**예시 1: 256비트 무작위 바이트 문자열 생성(Linux 또는 macOS)**  
다음 `generate-random` 예시에서는 256비트(32바이트), base64로 인코딩된 무작위 바이트 문자열을 생성합니다. 이 예시에서는 바이트 문자열을 디코딩하여 무작위 파일에 저장합니다.  
이 명령을 실행할 때는 `number-of-bytes` 파라미터를 사용하여 무작위 값의 길이를 바이트 단위로 지정해야 합니다.  
이 명령을 실행할 때는 KMS 키를 지정하지 않습니다. 무작위 바이트 문자열은 어떤 KMS 키와도 관련이 없습니다.  
기본적으로 AWS KMS는 난수를 생성합니다. 그러나 [사용자 지정 키 스토어](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)를 지정하면 사용자 지정 키 스토어와 연결된 AWS CloudHSM 클러스터에 임의 바이트 문자열이 생성됩니다.  
이 예시에서는 다음 파라미터와 값을 사용합니다.  
값이 인 필수 `--number-of-bytes` 파라미터를 사용하여 32바이트(256비트)를 `32` 요청합니다. string.It 값이 인 `--output` 파라미터를 사용하여 AWS CLI에 출력을 텍스트로 반환하도록 `text` 지시합니다. JSON.It 대신 `--query parameter`를 사용하여 `base64` 유틸리티에 대한 명령의 출력을 response.It 파이프( \$1 )에서 `Plaintext` 속성 값을 추출합니다. 는 추출된 output.It 리디렉션 연산자( > )를 사용하여 디코딩된 바이트 문자열을 `ExampleRandom`file.It 리디렉션 연산자( > )를 사용하여 바이너리 사이퍼텍스트를 파일에 저장합니다.  

```
aws kms generate-random \
    --number-of-bytes 32 \
    --output text \
    --query Plaintext | base64 --decode > ExampleRandom
```
이 명령은 출력을 생성하지 않습니다.  
자세한 내용은 *AWS Key Management Service API 참조*의 [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)을 참조하세요.  
**예시 2: 256비트 무작위 수 생성(Windows 명령 프롬프트)**  
다음 예시에서는 `generate-random` 명령을 사용하여 256비트(32바이트), base64로 인코딩된 무작위 바이트 문자열을 생성합니다. 이 예시에서는 바이트 문자열을 디코딩하여 무작위 파일에 저장합니다. 이 예시는 Windows의 `certutil` 유틸리티를 사용하여 무작위 바이트 문자열을 base64로 디코딩한 다음 파일에 저장한다는 점을 제외하면 이전 예와 동일합니다.  
먼저 base64로 인코딩된 무작위 바이트 문자열을 생성하여 임시 파일 `ExampleRandom.base64`에 저장합니다.  

```
aws kms generate-random \
    --number-of-bytes 32 \
    --output text \
    --query Plaintext > ExampleRandom.base64
```
`generate-random` 명령의 출력이 파일에 저장되기 때문에 이 예시에서는 출력이 생성되지 않습니다.  
이제 `certutil -decode` 명령을 사용하여 `ExampleRandom.base64` 파일에서 base64로 인코딩된 바이트 문자열을 디코딩합니다. 그런 다음 디코딩된 바이트 문자열을 `ExampleRandom` 파일에 저장합니다.  

```
certutil -decode ExampleRandom.base64 ExampleRandom
```
출력:  

```
Input Length = 18
Output Length = 12
CertUtil: -decode command completed successfully.
```
자세한 내용은 *AWS Key Management Service API 참조*의 [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)을 참조하세요.  
+  API 세부 정보는 **AWS CLI 명령 참조의 [GenerateRandom](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-random.html)을 참조하세요.

------
#### [ Rust ]

**SDK for Rust**  
 GitHub에 더 많은 내용이 있습니다. [AWS 코드 예 리포지토리](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/kms#code-examples)에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

```
async fn make_string(client: &Client, length: i32) -> Result<(), Error> {
    let resp = client
        .generate_random()
        .number_of_bytes(length)
        .send()
        .await?;

    // Did we get an encrypted blob?
    let blob = resp.plaintext.expect("Could not get encrypted text");
    let bytes = blob.as_ref();

    let s = base64::encode(bytes);

    println!();
    println!("Data key:");
    println!("{}", s);

    Ok(())
}
```
+  API 세부 정보는 *AWS SDK for Rust API 참조*의 [GenerateRandom](https://docs.rs/aws-sdk-kms/latest/aws_sdk_kms/client/struct.Client.html#method.generate_random)을 참조하세요.

------

 AWS SDK 개발자 안내서 및 코드 예제의 전체 목록은 섹션을 참조하세요[AWS SDK에서이 서비스 사용](sdk-general-information-section.md). 이 주제에는 시작하기에 대한 정보와 이전 SDK 버전에 대한 세부 정보도 포함되어 있습니다.