Struct aws_sdk_kms::client::fluent_builders::ImportKeyMaterial
source · pub struct ImportKeyMaterial { /* private fields */ }
Expand description
Fluent builder constructing a request to ImportKeyMaterial
.
Imports key material into an existing symmetric encryption KMS key that was created without key material. After you successfully import key material into a KMS key, you can reimport the same key material into that KMS key, but you cannot import different key material.
You cannot perform this operation on an asymmetric KMS key, an HMAC KMS key, or on any KMS key in a different Amazon Web Services account. For more information about creating KMS keys with no key material and then importing key material, see Importing Key Material in the Key Management Service Developer Guide.
Before using this operation, call GetParametersForImport
. Its response includes a public key and an import token. Use the public key to encrypt the key material. Then, submit the import token from the same GetParametersForImport
response.
When calling this operation, you must specify the following values:
-
The key ID or key ARN of a KMS key with no key material. Its
Origin
must beEXTERNAL
.To create a KMS key with no key material, call
CreateKey
and set the value of itsOrigin
parameter toEXTERNAL
. To get theOrigin
of a KMS key, callDescribeKey
.) -
The encrypted key material. To get the public key to encrypt the key material, call
GetParametersForImport
. -
The import token that
GetParametersForImport
returned. You must use a public key and token from the sameGetParametersForImport
response. -
Whether the key material expires and if so, when. If you set an expiration date, KMS deletes the key material from the KMS key on the specified date, and the KMS key becomes unusable. To use the KMS key again, you must reimport the same key material. The only way to change an expiration date is by reimporting the same key material and specifying a new expiration date.
When this operation is successful, the key state of the KMS key changes from PendingImport
to Enabled
, and you can use the KMS key.
If this operation fails, use the exception to help determine the problem. If the error is related to the key material, the import token, or wrapping key, use GetParametersForImport
to get a new public key and import token for the KMS key and repeat the import procedure. For help, see How To Import Key Material in the Key Management Service Developer Guide.
The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.
Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.
Required permissions: kms:ImportKeyMaterial (key policy)
Related operations:
-
DeleteImportedKeyMaterial
-
GetParametersForImport
Implementations§
source§impl ImportKeyMaterial
impl ImportKeyMaterial
sourcepub async fn customize(
self
) -> Result<CustomizableOperation<ImportKeyMaterial, AwsResponseRetryClassifier>, SdkError<ImportKeyMaterialError>>
pub async fn customize(
self
) -> Result<CustomizableOperation<ImportKeyMaterial, AwsResponseRetryClassifier>, SdkError<ImportKeyMaterialError>>
Consume this builder, creating a customizable operation that can be modified before being sent. The operation’s inner http::Request can be modified as well.
sourcepub async fn send(
self
) -> Result<ImportKeyMaterialOutput, SdkError<ImportKeyMaterialError>>
pub async fn send(
self
) -> Result<ImportKeyMaterialOutput, SdkError<ImportKeyMaterialError>>
Sends the request and returns the response.
If an error occurs, an SdkError
will be returned with additional details that
can be matched against.
By default, any retryable failures will be retried twice. Retry behavior is configurable with the RetryConfig, which can be set when configuring the client.
sourcepub fn key_id(self, input: impl Into<String>) -> Self
pub fn key_id(self, input: impl Into<String>) -> Self
The identifier of the symmetric encryption KMS key that receives the imported key material. This must be the same KMS key specified in the KeyID
parameter of the corresponding GetParametersForImport
request. The Origin
of the KMS key must be EXTERNAL
. You cannot perform this operation on an asymmetric KMS key, an HMAC KMS key, a KMS key in a custom key store, or on a KMS key in a different Amazon Web Services account
Specify the key ID or key ARN of the KMS key.
For example:
-
Key ID:
1234abcd-12ab-34cd-56ef-1234567890ab
-
Key ARN:
arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
To get the key ID and key ARN for a KMS key, use ListKeys
or DescribeKey
.
sourcepub fn set_key_id(self, input: Option<String>) -> Self
pub fn set_key_id(self, input: Option<String>) -> Self
The identifier of the symmetric encryption KMS key that receives the imported key material. This must be the same KMS key specified in the KeyID
parameter of the corresponding GetParametersForImport
request. The Origin
of the KMS key must be EXTERNAL
. You cannot perform this operation on an asymmetric KMS key, an HMAC KMS key, a KMS key in a custom key store, or on a KMS key in a different Amazon Web Services account
Specify the key ID or key ARN of the KMS key.
For example:
-
Key ID:
1234abcd-12ab-34cd-56ef-1234567890ab
-
Key ARN:
arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
To get the key ID and key ARN for a KMS key, use ListKeys
or DescribeKey
.
sourcepub fn import_token(self, input: Blob) -> Self
pub fn import_token(self, input: Blob) -> Self
The import token that you received in the response to a previous GetParametersForImport
request. It must be from the same response that contained the public key that you used to encrypt the key material.
sourcepub fn set_import_token(self, input: Option<Blob>) -> Self
pub fn set_import_token(self, input: Option<Blob>) -> Self
The import token that you received in the response to a previous GetParametersForImport
request. It must be from the same response that contained the public key that you used to encrypt the key material.
sourcepub fn encrypted_key_material(self, input: Blob) -> Self
pub fn encrypted_key_material(self, input: Blob) -> Self
The encrypted key material to import. The key material must be encrypted with the public wrapping key that GetParametersForImport
returned, using the wrapping algorithm that you specified in the same GetParametersForImport
request.
sourcepub fn set_encrypted_key_material(self, input: Option<Blob>) -> Self
pub fn set_encrypted_key_material(self, input: Option<Blob>) -> Self
The encrypted key material to import. The key material must be encrypted with the public wrapping key that GetParametersForImport
returned, using the wrapping algorithm that you specified in the same GetParametersForImport
request.
sourcepub fn valid_to(self, input: DateTime) -> Self
pub fn valid_to(self, input: DateTime) -> Self
The time at which the imported key material expires. When the key material expires, KMS deletes the key material and the KMS key becomes unusable. You must omit this parameter when the ExpirationModel
parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE
. Otherwise it is required.
sourcepub fn set_valid_to(self, input: Option<DateTime>) -> Self
pub fn set_valid_to(self, input: Option<DateTime>) -> Self
The time at which the imported key material expires. When the key material expires, KMS deletes the key material and the KMS key becomes unusable. You must omit this parameter when the ExpirationModel
parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE
. Otherwise it is required.
sourcepub fn expiration_model(self, input: ExpirationModelType) -> Self
pub fn expiration_model(self, input: ExpirationModelType) -> Self
Specifies whether the key material expires. The default is KEY_MATERIAL_EXPIRES
, in which case you must include the ValidTo
parameter. When this parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE
, you must omit the ValidTo
parameter.
sourcepub fn set_expiration_model(self, input: Option<ExpirationModelType>) -> Self
pub fn set_expiration_model(self, input: Option<ExpirationModelType>) -> Self
Specifies whether the key material expires. The default is KEY_MATERIAL_EXPIRES
, in which case you must include the ValidTo
parameter. When this parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE
, you must omit the ValidTo
parameter.
Trait Implementations§
source§impl Clone for ImportKeyMaterial
impl Clone for ImportKeyMaterial
source§fn clone(&self) -> ImportKeyMaterial
fn clone(&self) -> ImportKeyMaterial
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more