

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

# 권한 테스트
<a name="testing-permissions"></a>

를 사용하려면 API 요청을 인증하는 데 사용할 AWS 수 있는 자격 증명이 AWS KMS있어야 합니다. 이러한 보안 인증 정보는 KMS 키 및 별칭에 액세스할 수 있는 권한을 포함해야 합니다. 권한은 키 정책, IAM 정책, 권한 부여, 크로스 계정 액세스 제어에 따라 결정됩니다. KMS 키에 대한 액세스를 제어하는 것 외에도 CloudHSM 및 사용자 지정 키 스토어에 대한 액세스를 제어할 수 있습니다.

`DryRun` API 파라미터를 지정하여 AWS KMS 키를 사용하는 데 필요한 권한이 있는지 확인할 수 있습니다. `DryRun`를 사용하여 AWS KMS API 호출의 요청 파라미터가 올바르게 지정되었는지 확인할 수도 있습니다.

**Topics**
+ [DryRun 파라미터는 무엇인가요?](#what-is-dryrun)
+ [API를 통해 DryRun 지정](#dryrun-api)

## DryRun 파라미터는 무엇인가요?
<a name="what-is-dryrun"></a>

 `DryRun`은 AWS KMS API 호출이 성공하는지 확인하기 위해 지정하는 선택적 API 파라미터입니다. 실제로 AWS KMS에 호출하기 전에 API 호출을 테스트하는 데 `DryRun`을 사용합니다. 다음을 확인할 수 있습니다.
+ 사용자에게 AWS KMS 키를 사용하는 데 필요한 권한이 있는지 확인할 수 있습니다.
+ 호출에서 파라미터를 올바르게 지정했는지 확인할 수 있습니다.

AWS KMS 는 특정 API 작업에서 `DryRun` 파라미터 사용을 지원합니다.
+ [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
+ [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
+ [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)
+ [암호화](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
+ [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)
+ [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)
+ [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)
+ [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)
+ [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)
+ [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)
+ [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)
+ [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)
+ [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)
+ [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)
+ [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)

`DryRun` 파라미터를 사용하면 요금이 부과되며 표준 API 요청으로 요금이 청구됩니다. AWS KMS 요금에 대한 자세한 내용은 [AWS Key Management Service 요금을](https://aws.amazon.com/kms/pricing/) 참조하세요.

 `DryRun` 파라미터를 사용하는 모든 API 요청은 API의 요청 할당량에 적용되며, API 요청 할당량을 초과할 경우 스로틀링 예외가 발생할 수 있습니다. 예를 들어, `DryRun`이 있거나 `DryRun` 없이 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)를 호출하면 동일한 암호화 작업 할당량으로 간주됩니다. 자세한 내용은 [AWS KMS 요청 제한](throttling.md) 섹션을 참조하세요.

 AWS KMS API 작업에 대한 모든 호출은 이벤트로 캡처되고 AWS CloudTrail 로그에 기록됩니다. `DryRun` 파라미터를 지정하는 모든 작업의 출력은 CloudTrail 로그에 표시됩니다. 자세한 내용은 [를 사용하여 AWS KMS API 호출 로깅 AWS CloudTrail](logging-using-cloudtrail.md) 단원을 참조하십시오.

## API를 통해 DryRun 지정
<a name="dryrun-api"></a>

를 사용하려면 `—dry-run` 파라미터를 지원하는 명령 및 AWS KMS API 호출에서 AWS CLI 파라미터를 `DryRun`지정합니다. 이렇게 하면 AWS KMS 가 호출이 성공할지 확인합니다.를 사용하는 AWS KMS 호출`DryRun`은 항상 실패하고 호출이 실패한 이유에 대한 정보가 포함된 메시지를 반환합니다. 메시지에는 다음과 같은 예외 사항이 포함될 수 있습니다.
+ `DryRunOperationException` ‐ `DryRun`이 지정되지 않으면 요청이 성공합니다.
+ `ValidationException`‐ 잘못된 API 파라미터를 지정하여 요청이 실패했습니다.
+ `AccessDeniedException`‐ KMS 리소스에 대해 지정된 API 작업을 수행할 권한이 없습니다.

예를 들어 다음 명령은 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 작업을 사용하고 `keyUserRole` 역할을 수임할 권한이 있는 사용자가 지정된 [대칭 KMS 키](symm-asymm-choose-key-spec.md#symmetric-cmks)에 대해 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 작업을 호출할 수 있도록 허용하는 권한 부여를 생성합니다. `DryRun` 파라미터가 지정되었습니다.

```
$  aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --dry-run
```