本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
测试你的 Amazon KMS API 调用
要使用Amazon KMS,您必须拥有可用于对您的 Amazon API 请求进行身份验证的证书。证书必须包含访问 KMS 密钥和别名的权限。权限由密钥策略、IAM 策略、授权和跨账户访问控制决定。除了控制对 KMS 密钥的访问外,您还可以控制对 CloudHSM 和自定义密钥存储的访问权限。
您可以指定 DryRun
API 参数来验证您是否具有使用Amazon KMS密钥的必要权限。您还可以DryRun
用于验证 Amazon KMS API 调用中的请求参数是否已正确指定。
DryRun参数是什么?
DryRun
是一个可选 API 参数,您可以指定该参数来验证 Amazon KMS API 调用是否成功。DryRun
用于测试您的 API 调用,然后再实际调用Amazon KMS。您可以验证以下内容。
-
您拥有使用Amazon KMS密钥的必要权限。
-
你在通话中正确指定了参数。
Amazon KMS支持在某些 API 操作中使用DryRun
参数:
使用该DryRun
参数将产生费用,并将按标准 API 请求计费。有关 Amazon KMS 定价的更多信息,请参阅 Amazon Key Management Service 定价
使用DryRun
参数的所有 API 请求均适用于 API 的请求配额,如果您超过 API 请求配额,可能会导致限制异常。例如,调用 D ecrypt 时带DryRun
或不带DryRun
计数都计入相同的加密操作配额。要了解更多信息,请参阅限制 Amazon KMS 请求。
对 Amazon KMS API 操作的每一次调用都被捕获为事件并记录在Amazon CloudTrail日志中。任何指定DryRun
参数的操作的输出都会出现在您的CloudTrail日志中。有关更多信息,请参阅使用 Amazon KMS 记录 Amazon CloudTrail API 调用:
使用 API DryRun 进行指定
要使用DryRun
,请在支持该—dry-run
参数的Amazon CLI命令和 Amazon KMS API 调用中指定该参数。当你这样做时,Amazon KMS将验证你的通话是否会成功。 Amazon KMS使用的呼叫总是DryRun
会失败并返回一条消息,其中包含有关呼叫失败原因的信息。该消息可能包含以下例外情况:
-
DryRunOperationException
-如果DryRun
未指定,请求将成功。 -
ValidationException
-请求因指定错误的 API 参数而失败。 -
AccessDeniedException
-您无权对 KMS 资源执行指定的 API 操作。
例如,以下命令使用CreateGrant操作并创建授权,允许有权代入该keyUserRole
角色的用户对指定的对称 KMS 密钥调用 Decry pt 操作。DryRun
参数已指定。
$
aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \ --operations Decrypt \ --dry-run