aws-sdk-kms 1.76.0 → 1.118.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -242,6 +242,21 @@ module Aws::KMS
242
242
  include Aws::Structure
243
243
  end
244
244
 
245
+ # The request was rejected because an automatic rotation of this key is
246
+ # currently in progress or scheduled to begin within the next 20
247
+ # minutes.
248
+ #
249
+ # @!attribute [rw] message
250
+ # @return [String]
251
+ #
252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ConflictException AWS API Documentation
253
+ #
254
+ class ConflictException < Struct.new(
255
+ :message)
256
+ SENSITIVE = []
257
+ include Aws::Structure
258
+ end
259
+
245
260
  # @!attribute [rw] custom_key_store_id
246
261
  # Enter the key store ID of the custom key store that you want to
247
262
  # connect. To find the ID of a custom key store, use the
@@ -276,7 +291,7 @@ module Aws::KMS
276
291
  #
277
292
  #
278
293
  #
279
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
294
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
280
295
  # @return [String]
281
296
  #
282
297
  # @!attribute [rw] target_key_id
@@ -286,7 +301,7 @@ module Aws::KMS
286
301
  # A valid key ID is required. If you supply a null or empty string
287
302
  # value, this operation returns an error.
288
303
  #
289
- # For help finding the key ID and ARN, see [Finding the Key ID and
304
+ # For help finding the key ID and ARN, see [Find the key ID and key
290
305
  # ARN][2] in the <i> <i>Key Management Service Developer Guide</i>
291
306
  # </i>.
292
307
  #
@@ -304,8 +319,8 @@ module Aws::KMS
304
319
  #
305
320
  #
306
321
  #
307
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
308
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn
322
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
323
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html
309
324
  # @return [String]
310
325
  #
311
326
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateAliasRequest AWS API Documentation
@@ -372,7 +387,7 @@ module Aws::KMS
372
387
  #
373
388
  #
374
389
  #
375
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser
390
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html#concept-kmsuser
376
391
  # @return [String]
377
392
  #
378
393
  # @!attribute [rw] custom_key_store_type
@@ -470,6 +485,14 @@ module Aws::KMS
470
485
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements
471
486
  # @return [String]
472
487
  #
488
+ # @!attribute [rw] xks_proxy_vpc_endpoint_service_owner
489
+ # Specifies the Amazon Web Services account ID that owns the Amazon
490
+ # VPC service endpoint for the interface that is used to communicate
491
+ # with your external key store proxy (XKS proxy). This parameter is
492
+ # optional. If not provided, the Amazon Web Services account ID
493
+ # calling the action will be used.
494
+ # @return [String]
495
+ #
473
496
  # @!attribute [rw] xks_proxy_authentication_credential
474
497
  # Specifies an authentication credential for the external key store
475
498
  # proxy (XKS proxy). This parameter is required for all custom key
@@ -479,7 +502,7 @@ module Aws::KMS
479
502
  # `RawSecretAccessKey`, a secret key, and `AccessKeyId`, a unique
480
503
  # identifier for the `RawSecretAccessKey`. For character requirements,
481
504
  # see
482
- # [XksProxyAuthenticationCredentialType](kms/latest/APIReference/API_XksProxyAuthenticationCredentialType.html).
505
+ # [XksProxyAuthenticationCredentialType](API_XksProxyAuthenticationCredentialType.html).
483
506
  #
484
507
  # KMS uses this authentication credential to sign requests to the
485
508
  # external key store proxy on your behalf. This credential is
@@ -520,7 +543,7 @@ module Aws::KMS
520
543
  #
521
544
  #
522
545
  #
523
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/plan-xks-keystore.html#choose-xks-connectivity
546
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/choose-xks-connectivity.html
524
547
  # @return [String]
525
548
  #
526
549
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateCustomKeyStoreRequest AWS API Documentation
@@ -534,6 +557,7 @@ module Aws::KMS
534
557
  :xks_proxy_uri_endpoint,
535
558
  :xks_proxy_uri_path,
536
559
  :xks_proxy_vpc_endpoint_service_name,
560
+ :xks_proxy_vpc_endpoint_service_owner,
537
561
  :xks_proxy_authentication_credential,
538
562
  :xks_proxy_connectivity)
539
563
  SENSITIVE = [:key_store_password]
@@ -606,7 +630,7 @@ module Aws::KMS
606
630
  #
607
631
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
608
632
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns
609
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete
633
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html
610
634
  # @return [String]
611
635
  #
612
636
  # @!attribute [rw] operations
@@ -679,7 +703,7 @@ module Aws::KMS
679
703
  #
680
704
  #
681
705
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
682
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
706
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
683
707
  # @return [Array<String>]
684
708
  #
685
709
  # @!attribute [rw] name
@@ -707,12 +731,12 @@ module Aws::KMS
707
731
  # Checks if your request will succeed. `DryRun` is an optional
708
732
  # parameter.
709
733
  #
710
- # To learn more about how to use this parameter, see [Testing your KMS
711
- # API calls][1] in the *Key Management Service Developer Guide*.
734
+ # To learn more about how to use this parameter, see [Testing your
735
+ # permissions][1] in the *Key Management Service Developer Guide*.
712
736
  #
713
737
  #
714
738
  #
715
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
739
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
716
740
  # @return [Boolean]
717
741
  #
718
742
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrantRequest AWS API Documentation
@@ -741,7 +765,7 @@ module Aws::KMS
741
765
  #
742
766
  #
743
767
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
744
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
768
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
745
769
  # @return [String]
746
770
  #
747
771
  # @!attribute [rw] grant_id
@@ -781,22 +805,38 @@ module Aws::KMS
781
805
  # that I make are not always immediately visible][2] in the *Amazon
782
806
  # Web Services Identity and Access Management User Guide*.
783
807
  #
808
+ # <note markdown="1"> If either of the required `Resource` or `Action` elements are
809
+ # missing from a key policy statement, the policy statement has no
810
+ # effect. When a key policy statement is missing one of these
811
+ # elements, the KMS console correctly reports an error, but the
812
+ # `CreateKey` and `PutKeyPolicy` API requests succeed, even though the
813
+ # policy statement is ineffective.
814
+ #
815
+ # For more information on required key policy elements, see [Elements
816
+ # in a key policy][3] in the *Key Management Service Developer Guide*.
817
+ #
818
+ # </note>
819
+ #
784
820
  # If you do not provide a key policy, KMS attaches a default key
785
821
  # policy to the KMS key. For more information, see [Default key
786
- # policy][3] in the *Key Management Service Developer Guide*.
822
+ # policy][4] in the *Key Management Service Developer Guide*.
787
823
  #
788
- # The key policy size quota is 32 kilobytes (32768 bytes).
824
+ # <note markdown="1"> If the key policy exceeds the length constraint, KMS returns a
825
+ # `LimitExceededException`.
826
+ #
827
+ # </note>
789
828
  #
790
829
  # For help writing and formatting a JSON policy document, see the [IAM
791
- # JSON Policy Reference][4] in the <i> <i>Identity and Access
830
+ # JSON Policy Reference][5] in the <i> <i>Identity and Access
792
831
  # Management User Guide</i> </i>.
793
832
  #
794
833
  #
795
834
  #
796
835
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
797
836
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
798
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
799
- # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
837
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements
838
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html
839
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
800
840
  # @return [String]
801
841
  #
802
842
  # @!attribute [rw] description
@@ -816,8 +856,11 @@ module Aws::KMS
816
856
  # Determines the [cryptographic operations][1] for which you can use
817
857
  # the KMS key. The default value is `ENCRYPT_DECRYPT`. This parameter
818
858
  # is optional when you are creating a symmetric encryption KMS key;
819
- # otherwise, it is required. You can't change the `KeyUsage` value
820
- # after the KMS key is created.
859
+ # otherwise, it is required. You can't change the [ `KeyUsage` ][2]
860
+ # value after the KMS key is created. Each KMS key can have only one
861
+ # key usage. This follows key usage best practices according to [NIST
862
+ # SP 800-57 Recommendations for Key Management][3], section 5.2, Key
863
+ # usage.
821
864
  #
822
865
  # Select only one valid value.
823
866
  #
@@ -826,18 +869,26 @@ module Aws::KMS
826
869
  #
827
870
  # * For HMAC KMS keys (symmetric), specify `GENERATE_VERIFY_MAC`.
828
871
  #
829
- # * For asymmetric KMS keys with RSA key material, specify
872
+ # * For asymmetric KMS keys with RSA key pairs, specify
830
873
  # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
831
874
  #
832
- # * For asymmetric KMS keys with ECC key material, specify
875
+ # * For asymmetric KMS keys with NIST-standard elliptic curve key
876
+ # pairs, specify `SIGN_VERIFY` or `KEY_AGREEMENT`.
877
+ #
878
+ # * For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs, specify
879
+ # `SIGN_VERIFY`.
880
+ #
881
+ # * For asymmetric KMS keys with ML-DSA key pairs, specify
833
882
  # `SIGN_VERIFY`.
834
883
  #
835
- # * For asymmetric KMS keys with SM2 key material (China Regions
836
- # only), specify `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
884
+ # * For asymmetric KMS keys with SM2 key pairs (China Regions only),
885
+ # specify `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, or `KEY_AGREEMENT`.
837
886
  #
838
887
  #
839
888
  #
840
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
889
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
890
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#key-usage
891
+ # [3]: https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final
841
892
  # @return [String]
842
893
  #
843
894
  # @!attribute [rw] customer_master_key_spec
@@ -854,8 +905,8 @@ module Aws::KMS
854
905
  # `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit AES-GCM key
855
906
  # that is used for encryption and decryption, except in China Regions,
856
907
  # where it creates a 128-bit symmetric key that uses SM4 encryption.
857
- # For help choosing a key spec for your KMS key, see [Choosing a KMS
858
- # key type][1] in the <i> <i>Key Management Service Developer
908
+ # For a detailed description of all supported key specs, see [Key spec
909
+ # reference][1] in the <i> <i>Key Management Service Developer
859
910
  # Guide</i> </i>.
860
911
  #
861
912
  # The `KeySpec` determines whether the KMS key contains a symmetric
@@ -864,10 +915,11 @@ module Aws::KMS
864
915
  # KMS key is created. To further restrict the algorithms that can be
865
916
  # used with the KMS key, use a condition key in its key policy or IAM
866
917
  # policy. For more information, see [kms:EncryptionAlgorithm][2],
867
- # [kms:MacAlgorithm][3] or [kms:Signing Algorithm][4] in the <i>
868
- # <i>Key Management Service Developer Guide</i> </i>.
918
+ # [kms:MacAlgorithm][3], [kms:KeyAgreementAlgorithm][4], or
919
+ # [kms:SigningAlgorithm][5] in the <i> <i>Key Management Service
920
+ # Developer Guide</i> </i>.
869
921
  #
870
- # [Amazon Web Services services that are integrated with KMS][5] use
922
+ # [Amazon Web Services services that are integrated with KMS][6] use
871
923
  # symmetric encryption KMS keys to protect your data. These services
872
924
  # do not support asymmetric KMS keys or HMAC KMS keys.
873
925
  #
@@ -878,7 +930,6 @@ module Aws::KMS
878
930
  # * `SYMMETRIC_DEFAULT`
879
931
  #
880
932
  # ^
881
- #
882
933
  # * HMAC keys (symmetric)
883
934
  #
884
935
  # * `HMAC_224`
@@ -888,16 +939,16 @@ module Aws::KMS
888
939
  # * `HMAC_384`
889
940
  #
890
941
  # * `HMAC_512`
891
- #
892
- # * Asymmetric RSA key pairs
942
+ # * Asymmetric RSA key pairs (encryption and decryption -or- signing
943
+ # and verification)
893
944
  #
894
945
  # * `RSA_2048`
895
946
  #
896
947
  # * `RSA_3072`
897
948
  #
898
949
  # * `RSA_4096`
899
- #
900
- # * Asymmetric NIST-recommended elliptic curve key pairs
950
+ # * Asymmetric NIST-standard elliptic curve key pairs (signing and
951
+ # verification -or- deriving shared secrets)
901
952
  #
902
953
  # * `ECC_NIST_P256` (secp256r1)
903
954
  #
@@ -905,26 +956,47 @@ module Aws::KMS
905
956
  #
906
957
  # * `ECC_NIST_P521` (secp521r1)
907
958
  #
908
- # * Other asymmetric elliptic curve key pairs
959
+ # * `ECC_NIST_EDWARDS25519` (ed25519) - signing and verification
960
+ # only
961
+ #
962
+ # * **Note:** For ECC\_NIST\_EDWARDS25519 KMS keys, the
963
+ # ED25519\_SHA\_512 signing algorithm requires [
964
+ # `MessageType:RAW`
965
+ # ](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType),
966
+ # while ED25519\_PH\_SHA\_512 requires [ `MessageType:DIGEST`
967
+ # ](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType).
968
+ # These message types cannot be used interchangeably.
969
+ #
970
+ # ^
971
+ # * Other asymmetric elliptic curve key pairs (signing and
972
+ # verification)
909
973
  #
910
974
  # * `ECC_SECG_P256K1` (secp256k1), commonly used for
911
975
  # cryptocurrencies.
912
976
  #
913
977
  # ^
978
+ # * Asymmetric ML-DSA key pairs (signing and verification)
914
979
  #
915
- # * SM2 key pairs (China Regions only)
980
+ # * `ML_DSA_44`
916
981
  #
917
- # * `SM2`
982
+ # * `ML_DSA_65`
983
+ #
984
+ # * `ML_DSA_87`
985
+ # * SM2 key pairs (encryption and decryption -or- signing and
986
+ # verification -or- deriving shared secrets)
987
+ #
988
+ # * `SM2` (China Regions only)
918
989
  #
919
990
  # ^
920
991
  #
921
992
  #
922
993
  #
923
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html#symm-asymm-choose
924
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm
925
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm
926
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm
927
- # [5]: http://aws.amazon.com/kms/features/#AWS_Service_Integration
994
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html
995
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-algorithm
996
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-mac-algorithm
997
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-key-agreement-algorithm
998
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-signing-algorithm
999
+ # [6]: http://aws.amazon.com/kms/features/#AWS_Service_Integration
928
1000
  # @return [String]
929
1001
  #
930
1002
  # @!attribute [rw] origin
@@ -977,7 +1049,7 @@ module Aws::KMS
977
1049
  #
978
1050
  #
979
1051
  #
980
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1052
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
981
1053
  # @return [String]
982
1054
  #
983
1055
  # @!attribute [rw] bypass_policy_lockout_safety_check
@@ -1028,7 +1100,7 @@ module Aws::KMS
1028
1100
  # When you add tags to an Amazon Web Services resource, Amazon Web
1029
1101
  # Services generates a cost allocation report with usage and costs
1030
1102
  # aggregated by tags. Tags can also be used to control access to a KMS
1031
- # key. For details, see [Tagging Keys][3].
1103
+ # key. For details, see [Tags in KMS][3].
1032
1104
  #
1033
1105
  #
1034
1106
  #
@@ -1101,7 +1173,7 @@ module Aws::KMS
1101
1173
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key
1102
1174
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
1103
1175
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-xks-proxy
1104
- # [4]: https://docs.aws.amazon.com/create-xks-keys.html#xks-key-requirements
1176
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html#xks-key-requirements
1105
1177
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-double-encryption
1106
1178
  # @return [String]
1107
1179
  #
@@ -1430,7 +1502,6 @@ module Aws::KMS
1430
1502
  #
1431
1503
  # * The [TLS certificate][6] specifies the private DNS hostname at
1432
1504
  # which the endpoint is reachable.
1433
- #
1434
1505
  # * `XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND` — KMS can't find the VPC
1435
1506
  # endpoint service that it uses to communicate with the external key
1436
1507
  # store proxy. Verify that the `XksProxyVpcEndpointServiceName` is
@@ -1510,8 +1581,8 @@ module Aws::KMS
1510
1581
  #
1511
1582
  #
1512
1583
  #
1513
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1514
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
1584
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
1585
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
1515
1586
  # @return [Hash<String,String>]
1516
1587
  #
1517
1588
  # @!attribute [rw] grant_tokens
@@ -1525,7 +1596,7 @@ module Aws::KMS
1525
1596
  #
1526
1597
  #
1527
1598
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1528
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1599
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1529
1600
  # @return [Array<String>]
1530
1601
  #
1531
1602
  # @!attribute [rw] key_id
@@ -1576,42 +1647,44 @@ module Aws::KMS
1576
1647
  #
1577
1648
  # @!attribute [rw] recipient
1578
1649
  # A signed [attestation document][1] from an Amazon Web Services Nitro
1579
- # enclave and the encryption algorithm to use with the enclave's
1580
- # public key. The only valid encryption algorithm is
1581
- # `RSAES_OAEP_SHA_256`.
1650
+ # enclave or NitroTPM, and the encryption algorithm to use with the
1651
+ # public key in the attestation document. The only valid encryption
1652
+ # algorithm is `RSAES_OAEP_SHA_256`.
1582
1653
  #
1583
- # This parameter only supports attestation documents for Amazon Web
1584
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
1585
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
1654
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
1655
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
1656
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
1657
+ # Services NitroTPM.
1586
1658
  #
1587
1659
  # When you use this parameter, instead of returning the plaintext
1588
1660
  # data, KMS encrypts the plaintext data with the public key in the
1589
1661
  # attestation document, and returns the resulting ciphertext in the
1590
1662
  # `CiphertextForRecipient` field in the response. This ciphertext can
1591
- # be decrypted only with the private key in the enclave. The
1592
- # `Plaintext` field in the response is null or empty.
1663
+ # be decrypted only with the private key in the attested environment.
1664
+ # The `Plaintext` field in the response is null or empty.
1593
1665
  #
1594
1666
  # For information about the interaction between KMS and Amazon Web
1595
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
1596
- # uses KMS][3] in the *Key Management Service Developer Guide*.
1667
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
1668
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
1669
+ # Service Developer Guide*.
1597
1670
  #
1598
1671
  #
1599
1672
  #
1600
1673
  # [1]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-concepts.html#term-attestdoc
1601
1674
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
1602
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
1675
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
1603
1676
  # @return [Types::RecipientInfo]
1604
1677
  #
1605
1678
  # @!attribute [rw] dry_run
1606
1679
  # Checks if your request will succeed. `DryRun` is an optional
1607
1680
  # parameter.
1608
1681
  #
1609
- # To learn more about how to use this parameter, see [Testing your KMS
1610
- # API calls][1] in the *Key Management Service Developer Guide*.
1682
+ # To learn more about how to use this parameter, see [Testing your
1683
+ # permissions][1] in the *Key Management Service Developer Guide*.
1611
1684
  #
1612
1685
  #
1613
1686
  #
1614
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
1687
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
1615
1688
  # @return [Boolean]
1616
1689
  #
1617
1690
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptRequest AWS API Documentation
@@ -1651,19 +1724,28 @@ module Aws::KMS
1651
1724
  # @return [String]
1652
1725
  #
1653
1726
  # @!attribute [rw] ciphertext_for_recipient
1654
- # The plaintext data encrypted with the public key in the attestation
1655
- # document.
1727
+ # The plaintext data encrypted with the public key from the
1728
+ # attestation document. This ciphertext can be decrypted only by using
1729
+ # a private key from the attested environment.
1656
1730
  #
1657
1731
  # This field is included in the response only when the `Recipient`
1658
1732
  # parameter in the request includes a valid attestation document from
1659
- # an Amazon Web Services Nitro enclave. For information about the
1660
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
1661
- # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
1662
- # Management Service Developer Guide*.
1733
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
1734
+ # about the interaction between KMS and Amazon Web Services Nitro
1735
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
1736
+ # attestation support in KMS][1] in the *Key Management Service
1737
+ # Developer Guide*.
1663
1738
  #
1664
1739
  #
1665
1740
  #
1666
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
1741
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
1742
+ # @return [String]
1743
+ #
1744
+ # @!attribute [rw] key_material_id
1745
+ # The identifier of the key material used to decrypt the ciphertext.
1746
+ # This field is present only when the operation uses a symmetric
1747
+ # encryption KMS key. This field is omitted if the request includes
1748
+ # the `Recipient` parameter.
1667
1749
  # @return [String]
1668
1750
  #
1669
1751
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptResponse AWS API Documentation
@@ -1672,7 +1754,8 @@ module Aws::KMS
1672
1754
  :key_id,
1673
1755
  :plaintext,
1674
1756
  :encryption_algorithm,
1675
- :ciphertext_for_recipient)
1757
+ :ciphertext_for_recipient,
1758
+ :key_material_id)
1676
1759
  SENSITIVE = [:plaintext]
1677
1760
  include Aws::Structure
1678
1761
  end
@@ -1724,10 +1807,43 @@ module Aws::KMS
1724
1807
  # DescribeKey.
1725
1808
  # @return [String]
1726
1809
  #
1810
+ # @!attribute [rw] key_material_id
1811
+ # Identifies the imported key material you are deleting.
1812
+ #
1813
+ # If no KeyMaterialId is specified, KMS deletes the current key
1814
+ # material.
1815
+ #
1816
+ # To get the list of key material IDs associated with a KMS key, use
1817
+ # ListKeyRotations.
1818
+ # @return [String]
1819
+ #
1727
1820
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterialRequest AWS API Documentation
1728
1821
  #
1729
1822
  class DeleteImportedKeyMaterialRequest < Struct.new(
1730
- :key_id)
1823
+ :key_id,
1824
+ :key_material_id)
1825
+ SENSITIVE = []
1826
+ include Aws::Structure
1827
+ end
1828
+
1829
+ # @!attribute [rw] key_id
1830
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key from which
1831
+ # the key material was deleted.
1832
+ #
1833
+ #
1834
+ #
1835
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
1836
+ # @return [String]
1837
+ #
1838
+ # @!attribute [rw] key_material_id
1839
+ # Identifies the deleted key material.
1840
+ # @return [String]
1841
+ #
1842
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterialResponse AWS API Documentation
1843
+ #
1844
+ class DeleteImportedKeyMaterialResponse < Struct.new(
1845
+ :key_id,
1846
+ :key_material_id)
1731
1847
  SENSITIVE = []
1732
1848
  include Aws::Structure
1733
1849
  end
@@ -1746,6 +1862,201 @@ module Aws::KMS
1746
1862
  include Aws::Structure
1747
1863
  end
1748
1864
 
1865
+ # @!attribute [rw] key_id
1866
+ # Identifies an asymmetric NIST-standard ECC or SM2 (China Regions
1867
+ # only) KMS key. KMS uses the private key in the specified key pair to
1868
+ # derive the shared secret. The key usage of the KMS key must be
1869
+ # `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS key, use the
1870
+ # DescribeKey operation.
1871
+ #
1872
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
1873
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
1874
+ # a KMS key in a different Amazon Web Services account, you must use
1875
+ # the key ARN or alias ARN.
1876
+ #
1877
+ # For example:
1878
+ #
1879
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
1880
+ #
1881
+ # * Key ARN:
1882
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
1883
+ #
1884
+ # * Alias name: `alias/ExampleAlias`
1885
+ #
1886
+ # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
1887
+ #
1888
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1889
+ # DescribeKey. To get the alias name and alias ARN, use ListAliases.
1890
+ # @return [String]
1891
+ #
1892
+ # @!attribute [rw] key_agreement_algorithm
1893
+ # Specifies the key agreement algorithm used to derive the shared
1894
+ # secret. The only valid value is `ECDH`.
1895
+ # @return [String]
1896
+ #
1897
+ # @!attribute [rw] public_key
1898
+ # Specifies the public key in your peer's NIST-standard elliptic
1899
+ # curve (ECC) or SM2 (China Regions only) key pair.
1900
+ #
1901
+ # The public key must be a DER-encoded X.509 public key, also known as
1902
+ # `SubjectPublicKeyInfo` (SPKI), as defined in [RFC 5280][1].
1903
+ #
1904
+ # GetPublicKey returns the public key of an asymmetric KMS key pair in
1905
+ # the required DER-encoded format.
1906
+ #
1907
+ # <note markdown="1"> If you use [Amazon Web Services CLI version 1][2], you must provide
1908
+ # the DER-encoded X.509 public key in a file. Otherwise, the Amazon
1909
+ # Web Services CLI Base64-encodes the public key a second time,
1910
+ # resulting in a `ValidationException`.
1911
+ #
1912
+ # </note>
1913
+ #
1914
+ # You can specify the public key as binary data in a file using fileb
1915
+ # (`fileb://<path-to-file>`) or in-line using a Base64 encoded string.
1916
+ #
1917
+ #
1918
+ #
1919
+ # [1]: https://tools.ietf.org/html/rfc5280
1920
+ # [2]: https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
1921
+ # @return [String]
1922
+ #
1923
+ # @!attribute [rw] grant_tokens
1924
+ # A list of grant tokens.
1925
+ #
1926
+ # Use a grant token when your permission to call this operation comes
1927
+ # from a new grant that has not yet achieved *eventual consistency*.
1928
+ # For more information, see [Grant token][1] and [Using a grant
1929
+ # token][2] in the *Key Management Service Developer Guide*.
1930
+ #
1931
+ #
1932
+ #
1933
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1934
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1935
+ # @return [Array<String>]
1936
+ #
1937
+ # @!attribute [rw] dry_run
1938
+ # Checks if your request will succeed. `DryRun` is an optional
1939
+ # parameter.
1940
+ #
1941
+ # To learn more about how to use this parameter, see [Testing your
1942
+ # permissions][1] in the *Key Management Service Developer Guide*.
1943
+ #
1944
+ #
1945
+ #
1946
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
1947
+ # @return [Boolean]
1948
+ #
1949
+ # @!attribute [rw] recipient
1950
+ # A signed [attestation document][1] from an Amazon Web Services Nitro
1951
+ # enclave or NitroTPM, and the encryption algorithm to use with the
1952
+ # public key in the attestation document. The only valid encryption
1953
+ # algorithm is `RSAES_OAEP_SHA_256`.
1954
+ #
1955
+ # This parameter only supports attestation documents for Amazon Web
1956
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
1957
+ # DeriveSharedSecret generate an attestation document use either
1958
+ # [Amazon Web Services Nitro Enclaves SDK][2] for an Amazon Web
1959
+ # Services Nitro Enclaves or [Amazon Web Services NitroTPM tools][3]
1960
+ # for Amazon Web Services NitroTPM. Then use the Recipient parameter
1961
+ # from any Amazon Web Services SDK to provide the attestation document
1962
+ # for the attested environment.
1963
+ #
1964
+ # When you use this parameter, instead of returning a plaintext copy
1965
+ # of the shared secret, KMS encrypts the plaintext shared secret under
1966
+ # the public key in the attestation document, and returns the
1967
+ # resulting ciphertext in the `CiphertextForRecipient` field in the
1968
+ # response. This ciphertext can be decrypted only with the private key
1969
+ # in the attested environment. The `CiphertextBlob` field in the
1970
+ # response contains the encrypted shared secret derived from the KMS
1971
+ # key specified by the `KeyId` parameter and public key specified by
1972
+ # the `PublicKey` parameter. The `SharedSecret` field in the response
1973
+ # is null or empty.
1974
+ #
1975
+ # For information about the interaction between KMS and Amazon Web
1976
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
1977
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
1978
+ # Service Developer Guide*.
1979
+ #
1980
+ #
1981
+ #
1982
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
1983
+ # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
1984
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
1985
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
1986
+ # @return [Types::RecipientInfo]
1987
+ #
1988
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretRequest AWS API Documentation
1989
+ #
1990
+ class DeriveSharedSecretRequest < Struct.new(
1991
+ :key_id,
1992
+ :key_agreement_algorithm,
1993
+ :public_key,
1994
+ :grant_tokens,
1995
+ :dry_run,
1996
+ :recipient)
1997
+ SENSITIVE = []
1998
+ include Aws::Structure
1999
+ end
2000
+
2001
+ # @!attribute [rw] key_id
2002
+ # Identifies the KMS key used to derive the shared secret.
2003
+ # @return [String]
2004
+ #
2005
+ # @!attribute [rw] shared_secret
2006
+ # The raw secret derived from the specified key agreement algorithm,
2007
+ # private key in the asymmetric KMS key, and your peer's public key.
2008
+ #
2009
+ # If the response includes the `CiphertextForRecipient` field, the
2010
+ # `SharedSecret` field is null or empty.
2011
+ # @return [String]
2012
+ #
2013
+ # @!attribute [rw] ciphertext_for_recipient
2014
+ # The plaintext shared secret encrypted with the public key from the
2015
+ # attestation document. This ciphertext can be decrypted only by using
2016
+ # a private key from the attested environment.
2017
+ #
2018
+ # This field is included in the response only when the `Recipient`
2019
+ # parameter in the request includes a valid attestation document from
2020
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
2021
+ # about the interaction between KMS and Amazon Web Services Nitro
2022
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
2023
+ # attestation support in KMS][1] in the *Key Management Service
2024
+ # Developer Guide*.
2025
+ #
2026
+ #
2027
+ #
2028
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2029
+ # @return [String]
2030
+ #
2031
+ # @!attribute [rw] key_agreement_algorithm
2032
+ # Identifies the key agreement algorithm used to derive the shared
2033
+ # secret.
2034
+ # @return [String]
2035
+ #
2036
+ # @!attribute [rw] key_origin
2037
+ # The source of the key material for the specified KMS key.
2038
+ #
2039
+ # When this value is `AWS_KMS`, KMS created the key material. When
2040
+ # this value is `EXTERNAL`, the key material was imported or the KMS
2041
+ # key doesn't have any key material.
2042
+ #
2043
+ # The only valid values for DeriveSharedSecret are `AWS_KMS` and
2044
+ # `EXTERNAL`. DeriveSharedSecret does not support KMS keys with a
2045
+ # `KeyOrigin` value of `AWS_CLOUDHSM` or `EXTERNAL_KEY_STORE`.
2046
+ # @return [String]
2047
+ #
2048
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretResponse AWS API Documentation
2049
+ #
2050
+ class DeriveSharedSecretResponse < Struct.new(
2051
+ :key_id,
2052
+ :shared_secret,
2053
+ :ciphertext_for_recipient,
2054
+ :key_agreement_algorithm,
2055
+ :key_origin)
2056
+ SENSITIVE = [:shared_secret]
2057
+ include Aws::Structure
2058
+ end
2059
+
1749
2060
  # @!attribute [rw] custom_key_store_id
1750
2061
  # Gets only information about the specified custom key store. Enter
1751
2062
  # the key store ID.
@@ -1801,8 +2112,8 @@ module Aws::KMS
1801
2112
  # @!attribute [rw] truncated
1802
2113
  # A flag that indicates whether there are more items in the list. When
1803
2114
  # this value is true, the list in this response is truncated. To get
1804
- # more items, pass the value of the `NextMarker` element in
1805
- # thisresponse to the `Marker` parameter in a subsequent request.
2115
+ # more items, pass the value of the `NextMarker` element in this
2116
+ # response to the `Marker` parameter in a subsequent request.
1806
2117
  # @return [Boolean]
1807
2118
  #
1808
2119
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeCustomKeyStoresResponse AWS API Documentation
@@ -1844,7 +2155,7 @@ module Aws::KMS
1844
2155
  #
1845
2156
  #
1846
2157
  #
1847
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html##aws-managed-cmk
2158
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
1848
2159
  # @return [String]
1849
2160
  #
1850
2161
  # @!attribute [rw] grant_tokens
@@ -1858,7 +2169,7 @@ module Aws::KMS
1858
2169
  #
1859
2170
  #
1860
2171
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1861
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2172
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1862
2173
  # @return [Array<String>]
1863
2174
  #
1864
2175
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKeyRequest AWS API Documentation
@@ -1929,7 +2240,7 @@ module Aws::KMS
1929
2240
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks
1930
2241
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
1931
2242
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
1932
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2243
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
1933
2244
  # @return [String]
1934
2245
  #
1935
2246
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRotationRequest AWS API Documentation
@@ -2032,14 +2343,35 @@ module Aws::KMS
2032
2343
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
2033
2344
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
2034
2345
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
2035
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2036
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
2346
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
2347
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
2037
2348
  # @return [String]
2038
2349
  #
2350
+ # @!attribute [rw] rotation_period_in_days
2351
+ # Use this parameter to specify a custom period of time between each
2352
+ # rotation date. If no value is specified, the default value is 365
2353
+ # days.
2354
+ #
2355
+ # The rotation period defines the number of days after you enable
2356
+ # automatic key rotation that KMS will rotate your key material, and
2357
+ # the number of days between each automatic rotation thereafter.
2358
+ #
2359
+ # You can use the [ `kms:RotationPeriodInDays` ][1] condition key to
2360
+ # further constrain the values that principals can specify in the
2361
+ # `RotationPeriodInDays` parameter.
2362
+ #
2363
+ #
2364
+ #
2365
+ #
2366
+ #
2367
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-rotation-period-in-days
2368
+ # @return [Integer]
2369
+ #
2039
2370
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotationRequest AWS API Documentation
2040
2371
  #
2041
2372
  class EnableKeyRotationRequest < Struct.new(
2042
- :key_id)
2373
+ :key_id,
2374
+ :rotation_period_in_days)
2043
2375
  SENSITIVE = []
2044
2376
  include Aws::Structure
2045
2377
  end
@@ -2098,8 +2430,8 @@ module Aws::KMS
2098
2430
  #
2099
2431
  #
2100
2432
  #
2101
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2102
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2433
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
2434
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2103
2435
  # @return [Hash<String,String>]
2104
2436
  #
2105
2437
  # @!attribute [rw] grant_tokens
@@ -2113,7 +2445,7 @@ module Aws::KMS
2113
2445
  #
2114
2446
  #
2115
2447
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2116
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2448
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2117
2449
  # @return [Array<String>]
2118
2450
  #
2119
2451
  # @!attribute [rw] encryption_algorithm
@@ -2133,12 +2465,12 @@ module Aws::KMS
2133
2465
  # Checks if your request will succeed. `DryRun` is an optional
2134
2466
  # parameter.
2135
2467
  #
2136
- # To learn more about how to use this parameter, see [Testing your KMS
2137
- # API calls][1] in the *Key Management Service Developer Guide*.
2468
+ # To learn more about how to use this parameter, see [Testing your
2469
+ # permissions][1] in the *Key Management Service Developer Guide*.
2138
2470
  #
2139
2471
  #
2140
2472
  #
2141
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2473
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2142
2474
  # @return [Boolean]
2143
2475
  #
2144
2476
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EncryptRequest AWS API Documentation
@@ -2221,7 +2553,7 @@ module Aws::KMS
2221
2553
  #
2222
2554
  #
2223
2555
  #
2224
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2556
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2225
2557
  # @return [Hash<String,String>]
2226
2558
  #
2227
2559
  # @!attribute [rw] key_id
@@ -2255,9 +2587,11 @@ module Aws::KMS
2255
2587
  #
2256
2588
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS
2257
2589
  # keys to encrypt and decrypt or to sign and verify (but not both),
2258
- # and the rule that permits you to use ECC KMS keys only to sign and
2259
- # verify, are not effective on data key pairs, which are used outside
2260
- # of KMS. The SM2 key spec is only available in China Regions.
2590
+ # the rule that permits you to use ECC KMS keys only to sign and
2591
+ # verify, and the rule that permits you to use ML-DSA key pairs to
2592
+ # sign and verify only are not effective on data key pairs, which are
2593
+ # used outside of KMS. The SM2 key spec is only available in China
2594
+ # Regions.
2261
2595
  # @return [String]
2262
2596
  #
2263
2597
  # @!attribute [rw] grant_tokens
@@ -2271,50 +2605,57 @@ module Aws::KMS
2271
2605
  #
2272
2606
  #
2273
2607
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2274
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2608
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2275
2609
  # @return [Array<String>]
2276
2610
  #
2277
2611
  # @!attribute [rw] recipient
2278
2612
  # A signed [attestation document][1] from an Amazon Web Services Nitro
2279
- # enclave and the encryption algorithm to use with the enclave's
2280
- # public key. The only valid encryption algorithm is
2281
- # `RSAES_OAEP_SHA_256`.
2613
+ # enclave or NitroTPM, and the encryption algorithm to use with the
2614
+ # public key in the attestation document. The only valid encryption
2615
+ # algorithm is `RSAES_OAEP_SHA_256`.
2282
2616
  #
2283
2617
  # This parameter only supports attestation documents for Amazon Web
2284
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2285
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2618
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
2619
+ # GenerateDataKeyPair generate an attestation document use either
2620
+ # [Amazon Web Services Nitro Enclaves SDK][2] for an Amazon Web
2621
+ # Services Nitro Enclaves or [Amazon Web Services NitroTPM tools][3]
2622
+ # for Amazon Web Services NitroTPM. Then use the Recipient parameter
2623
+ # from any Amazon Web Services SDK to provide the attestation document
2624
+ # for the attested environment.
2286
2625
  #
2287
2626
  # When you use this parameter, instead of returning a plaintext copy
2288
2627
  # of the private data key, KMS encrypts the plaintext private data key
2289
2628
  # under the public key in the attestation document, and returns the
2290
2629
  # resulting ciphertext in the `CiphertextForRecipient` field in the
2291
2630
  # response. This ciphertext can be decrypted only with the private key
2292
- # in the enclave. The `CiphertextBlob` field in the response contains
2293
- # a copy of the private data key encrypted under the KMS key specified
2294
- # by the `KeyId` parameter. The `PrivateKeyPlaintext` field in the
2295
- # response is null or empty.
2631
+ # in the attested environment. The `CiphertextBlob` field in the
2632
+ # response contains a copy of the private data key encrypted under the
2633
+ # KMS key specified by the `KeyId` parameter. The
2634
+ # `PrivateKeyPlaintext` field in the response is null or empty.
2296
2635
  #
2297
2636
  # For information about the interaction between KMS and Amazon Web
2298
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2299
- # uses KMS][3] in the *Key Management Service Developer Guide*.
2637
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
2638
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
2639
+ # Service Developer Guide*.
2300
2640
  #
2301
2641
  #
2302
2642
  #
2303
2643
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2304
2644
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2305
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2645
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
2646
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2306
2647
  # @return [Types::RecipientInfo]
2307
2648
  #
2308
2649
  # @!attribute [rw] dry_run
2309
2650
  # Checks if your request will succeed. `DryRun` is an optional
2310
2651
  # parameter.
2311
2652
  #
2312
- # To learn more about how to use this parameter, see [Testing your KMS
2313
- # API calls][1] in the *Key Management Service Developer Guide*.
2653
+ # To learn more about how to use this parameter, see [Testing your
2654
+ # permissions][1] in the *Key Management Service Developer Guide*.
2314
2655
  #
2315
2656
  #
2316
2657
  #
2317
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2658
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2318
2659
  # @return [Boolean]
2319
2660
  #
2320
2661
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairRequest AWS API Documentation
@@ -2366,19 +2707,24 @@ module Aws::KMS
2366
2707
  #
2367
2708
  # @!attribute [rw] ciphertext_for_recipient
2368
2709
  # The plaintext private data key encrypted with the public key from
2369
- # the Nitro enclave. This ciphertext can be decrypted only by using a
2370
- # private key in the Nitro enclave.
2710
+ # the attestation document. This ciphertext can be decrypted only by
2711
+ # using a private key from the attested environment.
2371
2712
  #
2372
2713
  # This field is included in the response only when the `Recipient`
2373
2714
  # parameter in the request includes a valid attestation document from
2374
- # an Amazon Web Services Nitro enclave. For information about the
2375
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
2376
- # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
2377
- # Management Service Developer Guide*.
2715
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
2716
+ # about the interaction between KMS and Amazon Web Services Nitro
2717
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
2718
+ # attestation support in KMS][1] in the *Key Management Service
2719
+ # Developer Guide*.
2378
2720
  #
2379
2721
  #
2380
2722
  #
2381
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2723
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2724
+ # @return [String]
2725
+ #
2726
+ # @!attribute [rw] key_material_id
2727
+ # The identifier of the key material used to encrypt the private key.
2382
2728
  # @return [String]
2383
2729
  #
2384
2730
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairResponse AWS API Documentation
@@ -2389,7 +2735,8 @@ module Aws::KMS
2389
2735
  :public_key,
2390
2736
  :key_id,
2391
2737
  :key_pair_spec,
2392
- :ciphertext_for_recipient)
2738
+ :ciphertext_for_recipient,
2739
+ :key_material_id)
2393
2740
  SENSITIVE = [:private_key_plaintext]
2394
2741
  include Aws::Structure
2395
2742
  end
@@ -2416,7 +2763,7 @@ module Aws::KMS
2416
2763
  #
2417
2764
  #
2418
2765
  #
2419
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2766
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2420
2767
  # @return [Hash<String,String>]
2421
2768
  #
2422
2769
  # @!attribute [rw] key_id
@@ -2450,9 +2797,11 @@ module Aws::KMS
2450
2797
  #
2451
2798
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS
2452
2799
  # keys to encrypt and decrypt or to sign and verify (but not both),
2453
- # and the rule that permits you to use ECC KMS keys only to sign and
2454
- # verify, are not effective on data key pairs, which are used outside
2455
- # of KMS. The SM2 key spec is only available in China Regions.
2800
+ # the rule that permits you to use ECC KMS keys only to sign and
2801
+ # verify, and the rule that permits you to use ML-DSA key pairs to
2802
+ # sign and verify only are not effective on data key pairs, which are
2803
+ # used outside of KMS. The SM2 key spec is only available in China
2804
+ # Regions.
2456
2805
  # @return [String]
2457
2806
  #
2458
2807
  # @!attribute [rw] grant_tokens
@@ -2466,19 +2815,19 @@ module Aws::KMS
2466
2815
  #
2467
2816
  #
2468
2817
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2469
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2818
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2470
2819
  # @return [Array<String>]
2471
2820
  #
2472
2821
  # @!attribute [rw] dry_run
2473
2822
  # Checks if your request will succeed. `DryRun` is an optional
2474
2823
  # parameter.
2475
2824
  #
2476
- # To learn more about how to use this parameter, see [Testing your KMS
2477
- # API calls][1] in the *Key Management Service Developer Guide*.
2825
+ # To learn more about how to use this parameter, see [Testing your
2826
+ # permissions][1] in the *Key Management Service Developer Guide*.
2478
2827
  #
2479
2828
  #
2480
2829
  #
2481
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2830
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2482
2831
  # @return [Boolean]
2483
2832
  #
2484
2833
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintextRequest AWS API Documentation
@@ -2518,13 +2867,18 @@ module Aws::KMS
2518
2867
  # The type of data key pair that was generated.
2519
2868
  # @return [String]
2520
2869
  #
2870
+ # @!attribute [rw] key_material_id
2871
+ # The identifier of the key material used to encrypt the private key.
2872
+ # @return [String]
2873
+ #
2521
2874
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintextResponse AWS API Documentation
2522
2875
  #
2523
2876
  class GenerateDataKeyPairWithoutPlaintextResponse < Struct.new(
2524
2877
  :private_key_ciphertext_blob,
2525
2878
  :public_key,
2526
2879
  :key_id,
2527
- :key_pair_spec)
2880
+ :key_pair_spec,
2881
+ :key_material_id)
2528
2882
  SENSITIVE = []
2529
2883
  include Aws::Structure
2530
2884
  end
@@ -2577,7 +2931,7 @@ module Aws::KMS
2577
2931
  #
2578
2932
  #
2579
2933
  #
2580
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2934
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2581
2935
  # @return [Hash<String,String>]
2582
2936
  #
2583
2937
  # @!attribute [rw] number_of_bytes
@@ -2610,18 +2964,19 @@ module Aws::KMS
2610
2964
  #
2611
2965
  #
2612
2966
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2613
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2967
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2614
2968
  # @return [Array<String>]
2615
2969
  #
2616
2970
  # @!attribute [rw] recipient
2617
2971
  # A signed [attestation document][1] from an Amazon Web Services Nitro
2618
- # enclave and the encryption algorithm to use with the enclave's
2619
- # public key. The only valid encryption algorithm is
2620
- # `RSAES_OAEP_SHA_256`.
2972
+ # enclave or NitroTPM, and the encryption algorithm to use with the
2973
+ # public key in the attestation document. The only valid encryption
2974
+ # algorithm is `RSAES_OAEP_SHA_256`.
2621
2975
  #
2622
- # This parameter only supports attestation documents for Amazon Web
2623
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2624
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2976
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
2977
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
2978
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
2979
+ # Services NitroTPM.
2625
2980
  #
2626
2981
  # When you use this parameter, instead of returning the plaintext data
2627
2982
  # key, KMS encrypts the plaintext data key under the public key in the
@@ -2633,26 +2988,27 @@ module Aws::KMS
2633
2988
  # The `Plaintext` field in the response is null or empty.
2634
2989
  #
2635
2990
  # For information about the interaction between KMS and Amazon Web
2636
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2637
- # uses KMS][3] in the *Key Management Service Developer Guide*.
2991
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
2992
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
2993
+ # Service Developer Guide*.
2638
2994
  #
2639
2995
  #
2640
2996
  #
2641
2997
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2642
2998
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2643
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2999
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2644
3000
  # @return [Types::RecipientInfo]
2645
3001
  #
2646
3002
  # @!attribute [rw] dry_run
2647
3003
  # Checks if your request will succeed. `DryRun` is an optional
2648
3004
  # parameter.
2649
3005
  #
2650
- # To learn more about how to use this parameter, see [Testing your KMS
2651
- # API calls][1] in the *Key Management Service Developer Guide*.
3006
+ # To learn more about how to use this parameter, see [Testing your
3007
+ # permissions][1] in the *Key Management Service Developer Guide*.
2652
3008
  #
2653
3009
  #
2654
3010
  #
2655
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
3011
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2656
3012
  # @return [Boolean]
2657
3013
  #
2658
3014
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyRequest AWS API Documentation
@@ -2695,20 +3051,27 @@ module Aws::KMS
2695
3051
  # @return [String]
2696
3052
  #
2697
3053
  # @!attribute [rw] ciphertext_for_recipient
2698
- # The plaintext data key encrypted with the public key from the Nitro
2699
- # enclave. This ciphertext can be decrypted only by using a private
2700
- # key in the Nitro enclave.
3054
+ # The plaintext data key encrypted with the public key from the
3055
+ # attestation document. This ciphertext can be decrypted only by using
3056
+ # a private key from the attested environment.
2701
3057
  #
2702
3058
  # This field is included in the response only when the `Recipient`
2703
3059
  # parameter in the request includes a valid attestation document from
2704
- # an Amazon Web Services Nitro enclave. For information about the
2705
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
2706
- # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
2707
- # Management Service Developer Guide*.
3060
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
3061
+ # about the interaction between KMS and Amazon Web Services Nitro
3062
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
3063
+ # attestation support in KMS][1] in the *Key Management Service
3064
+ # Developer Guide*.
2708
3065
  #
2709
3066
  #
2710
3067
  #
2711
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3068
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
3069
+ # @return [String]
3070
+ #
3071
+ # @!attribute [rw] key_material_id
3072
+ # The identifier of the key material used to encrypt the data key.
3073
+ # This field is omitted if the request includes the `Recipient`
3074
+ # parameter.
2712
3075
  # @return [String]
2713
3076
  #
2714
3077
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyResponse AWS API Documentation
@@ -2717,7 +3080,8 @@ module Aws::KMS
2717
3080
  :ciphertext_blob,
2718
3081
  :plaintext,
2719
3082
  :key_id,
2720
- :ciphertext_for_recipient)
3083
+ :ciphertext_for_recipient,
3084
+ :key_material_id)
2721
3085
  SENSITIVE = [:plaintext]
2722
3086
  include Aws::Structure
2723
3087
  end
@@ -2770,7 +3134,7 @@ module Aws::KMS
2770
3134
  #
2771
3135
  #
2772
3136
  #
2773
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
3137
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2774
3138
  # @return [Hash<String,String>]
2775
3139
  #
2776
3140
  # @!attribute [rw] key_spec
@@ -2796,19 +3160,19 @@ module Aws::KMS
2796
3160
  #
2797
3161
  #
2798
3162
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2799
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
3163
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2800
3164
  # @return [Array<String>]
2801
3165
  #
2802
3166
  # @!attribute [rw] dry_run
2803
3167
  # Checks if your request will succeed. `DryRun` is an optional
2804
3168
  # parameter.
2805
3169
  #
2806
- # To learn more about how to use this parameter, see [Testing your KMS
2807
- # API calls][1] in the *Key Management Service Developer Guide*.
3170
+ # To learn more about how to use this parameter, see [Testing your
3171
+ # permissions][1] in the *Key Management Service Developer Guide*.
2808
3172
  #
2809
3173
  #
2810
3174
  #
2811
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
3175
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2812
3176
  # @return [Boolean]
2813
3177
  #
2814
3178
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextRequest AWS API Documentation
@@ -2839,11 +3203,16 @@ module Aws::KMS
2839
3203
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
2840
3204
  # @return [String]
2841
3205
  #
3206
+ # @!attribute [rw] key_material_id
3207
+ # The identifier of the key material used to encrypt the data key.
3208
+ # @return [String]
3209
+ #
2842
3210
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextResponse AWS API Documentation
2843
3211
  #
2844
3212
  class GenerateDataKeyWithoutPlaintextResponse < Struct.new(
2845
3213
  :ciphertext_blob,
2846
- :key_id)
3214
+ :key_id,
3215
+ :key_material_id)
2847
3216
  SENSITIVE = []
2848
3217
  include Aws::Structure
2849
3218
  end
@@ -2888,19 +3257,19 @@ module Aws::KMS
2888
3257
  #
2889
3258
  #
2890
3259
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2891
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
3260
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2892
3261
  # @return [Array<String>]
2893
3262
  #
2894
3263
  # @!attribute [rw] dry_run
2895
3264
  # Checks if your request will succeed. `DryRun` is an optional
2896
3265
  # parameter.
2897
3266
  #
2898
- # To learn more about how to use this parameter, see [Testing your KMS
2899
- # API calls][1] in the *Key Management Service Developer Guide*.
3267
+ # To learn more about how to use this parameter, see [Testing your
3268
+ # permissions][1] in the *Key Management Service Developer Guide*.
2900
3269
  #
2901
3270
  #
2902
3271
  #
2903
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
3272
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2904
3273
  # @return [Boolean]
2905
3274
  #
2906
3275
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateMacRequest AWS API Documentation
@@ -2960,30 +3329,32 @@ module Aws::KMS
2960
3329
  #
2961
3330
  # @!attribute [rw] recipient
2962
3331
  # A signed [attestation document][1] from an Amazon Web Services Nitro
2963
- # enclave and the encryption algorithm to use with the enclave's
2964
- # public key. The only valid encryption algorithm is
2965
- # `RSAES_OAEP_SHA_256`.
3332
+ # enclave or NitroTPM, and the encryption algorithm to use with the
3333
+ # public key in the attestation document. The only valid encryption
3334
+ # algorithm is `RSAES_OAEP_SHA_256`.
2966
3335
  #
2967
- # This parameter only supports attestation documents for Amazon Web
2968
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2969
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
3336
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
3337
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
3338
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
3339
+ # Services NitroTPM.
2970
3340
  #
2971
3341
  # When you use this parameter, instead of returning plaintext bytes,
2972
3342
  # KMS encrypts the plaintext bytes under the public key in the
2973
3343
  # attestation document, and returns the resulting ciphertext in the
2974
3344
  # `CiphertextForRecipient` field in the response. This ciphertext can
2975
- # be decrypted only with the private key in the enclave. The
2976
- # `Plaintext` field in the response is null or empty.
3345
+ # be decrypted only with the private key in the attested environment.
3346
+ # The `Plaintext` field in the response is null or empty.
2977
3347
  #
2978
3348
  # For information about the interaction between KMS and Amazon Web
2979
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2980
- # uses KMS][3] in the *Key Management Service Developer Guide*.
3349
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
3350
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
3351
+ # Service Developer Guide*.
2981
3352
  #
2982
3353
  #
2983
3354
  #
2984
3355
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2985
3356
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2986
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3357
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2987
3358
  # @return [Types::RecipientInfo]
2988
3359
  #
2989
3360
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomRequest AWS API Documentation
@@ -3007,19 +3378,20 @@ module Aws::KMS
3007
3378
  #
3008
3379
  # @!attribute [rw] ciphertext_for_recipient
3009
3380
  # The plaintext random bytes encrypted with the public key from the
3010
- # Nitro enclave. This ciphertext can be decrypted only by using a
3011
- # private key in the Nitro enclave.
3381
+ # attestation document. This ciphertext can be decrypted only by using
3382
+ # a private key from the attested environment.
3012
3383
  #
3013
3384
  # This field is included in the response only when the `Recipient`
3014
3385
  # parameter in the request includes a valid attestation document from
3015
- # an Amazon Web Services Nitro enclave. For information about the
3016
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
3017
- # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
3018
- # Management Service Developer Guide*.
3386
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
3387
+ # about the interaction between KMS and Amazon Web Services Nitro
3388
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
3389
+ # attestation support in KMS][1] in the *Key Management Service
3390
+ # Developer Guide*.
3019
3391
  #
3020
3392
  #
3021
3393
  #
3022
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3394
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
3023
3395
  # @return [String]
3024
3396
  #
3025
3397
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomResponse AWS API Documentation
@@ -3048,7 +3420,8 @@ module Aws::KMS
3048
3420
  # @return [String]
3049
3421
  #
3050
3422
  # @!attribute [rw] policy_name
3051
- # Specifies the name of the key policy. The only valid name is
3423
+ # Specifies the name of the key policy. If no policy name is
3424
+ # specified, the default value is `default`. The only valid name is
3052
3425
  # `default`. To get the names of key policies, use ListKeyPolicies.
3053
3426
  # @return [String]
3054
3427
  #
@@ -3065,10 +3438,15 @@ module Aws::KMS
3065
3438
  # A key policy document in JSON format.
3066
3439
  # @return [String]
3067
3440
  #
3441
+ # @!attribute [rw] policy_name
3442
+ # The name of the key policy. The only valid value is `default`.
3443
+ # @return [String]
3444
+ #
3068
3445
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicyResponse AWS API Documentation
3069
3446
  #
3070
3447
  class GetKeyPolicyResponse < Struct.new(
3071
- :policy)
3448
+ :policy,
3449
+ :policy_name)
3072
3450
  SENSITIVE = []
3073
3451
  include Aws::Structure
3074
3452
  end
@@ -3103,10 +3481,39 @@ module Aws::KMS
3103
3481
  # A Boolean value that specifies whether key rotation is enabled.
3104
3482
  # @return [Boolean]
3105
3483
  #
3484
+ # @!attribute [rw] key_id
3485
+ # Identifies the specified symmetric encryption KMS key.
3486
+ # @return [String]
3487
+ #
3488
+ # @!attribute [rw] rotation_period_in_days
3489
+ # The number of days between each automatic rotation. The default
3490
+ # value is 365 days.
3491
+ # @return [Integer]
3492
+ #
3493
+ # @!attribute [rw] next_rotation_date
3494
+ # The next date that KMS will automatically rotate the key material.
3495
+ # @return [Time]
3496
+ #
3497
+ # @!attribute [rw] on_demand_rotation_start_date
3498
+ # Identifies the date and time that an in progress on-demand rotation
3499
+ # was initiated.
3500
+ #
3501
+ # KMS uses a background process to perform rotations. As a result,
3502
+ # there might be a slight delay between initiating on-demand key
3503
+ # rotation and the rotation's completion. Once the on-demand rotation
3504
+ # is complete, KMS removes this field from the response. You can use
3505
+ # ListKeyRotations to view the details of the completed on-demand
3506
+ # rotation.
3507
+ # @return [Time]
3508
+ #
3106
3509
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatusResponse AWS API Documentation
3107
3510
  #
3108
3511
  class GetKeyRotationStatusResponse < Struct.new(
3109
- :key_rotation_enabled)
3512
+ :key_rotation_enabled,
3513
+ :key_id,
3514
+ :rotation_period_in_days,
3515
+ :next_rotation_date,
3516
+ :on_demand_rotation_start_date)
3110
3517
  SENSITIVE = []
3111
3518
  include Aws::Structure
3112
3519
  end
@@ -3136,9 +3543,8 @@ module Aws::KMS
3136
3543
  # @!attribute [rw] wrapping_algorithm
3137
3544
  # The algorithm you will use with the RSA public key (`PublicKey`) in
3138
3545
  # the response to protect your key material during import. For more
3139
- # information, see [Select a wrapping
3140
- # algorithm](kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm)
3141
- # in the *Key Management Service Developer Guide*.
3546
+ # information, see [Select a wrapping algorithm][1] in the *Key
3547
+ # Management Service Developer Guide*.
3142
3548
  #
3143
3549
  # For RSA\_AES wrapping algorithms, you encrypt your key material with
3144
3550
  # an AES key that you generate, then encrypt your AES key with the RSA
@@ -3170,6 +3576,10 @@ module Aws::KMS
3170
3576
  #
3171
3577
  # * **RSAES\_PKCS1\_V1\_5** (Deprecated) — As of October 10, 2023, KMS
3172
3578
  # does not support the RSAES\_PKCS1\_V1\_5 wrapping algorithm.
3579
+ #
3580
+ #
3581
+ #
3582
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm
3173
3583
  # @return [String]
3174
3584
  #
3175
3585
  # @!attribute [rw] wrapping_key_spec
@@ -3265,7 +3675,7 @@ module Aws::KMS
3265
3675
  #
3266
3676
  #
3267
3677
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
3268
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
3678
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
3269
3679
  # @return [Array<String>]
3270
3680
  #
3271
3681
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyRequest AWS API Documentation
@@ -3314,12 +3724,12 @@ module Aws::KMS
3314
3724
  # @return [String]
3315
3725
  #
3316
3726
  # @!attribute [rw] key_usage
3317
- # The permitted use of the public key. Valid values are
3318
- # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
3727
+ # The permitted use of the public key. Valid values for asymmetric key
3728
+ # pairs are `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, and `KEY_AGREEMENT`.
3319
3729
  #
3320
- # This information is critical. If a public key with `SIGN_VERIFY` key
3321
- # usage encrypts data outside of KMS, the ciphertext cannot be
3322
- # decrypted.
3730
+ # This information is critical. For example, if a public key with
3731
+ # `SIGN_VERIFY` key usage encrypts data outside of KMS, the ciphertext
3732
+ # cannot be decrypted.
3323
3733
  # @return [String]
3324
3734
  #
3325
3735
  # @!attribute [rw] encryption_algorithms
@@ -3340,6 +3750,12 @@ module Aws::KMS
3340
3750
  # public key is `SIGN_VERIFY`.
3341
3751
  # @return [Array<String>]
3342
3752
  #
3753
+ # @!attribute [rw] key_agreement_algorithms
3754
+ # The key agreement algorithm used to derive a shared secret. This
3755
+ # field is present only when the KMS key has a `KeyUsage` value of
3756
+ # `KEY_AGREEMENT`.
3757
+ # @return [Array<String>]
3758
+ #
3343
3759
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyResponse AWS API Documentation
3344
3760
  #
3345
3761
  class GetPublicKeyResponse < Struct.new(
@@ -3349,7 +3765,8 @@ module Aws::KMS
3349
3765
  :key_spec,
3350
3766
  :key_usage,
3351
3767
  :encryption_algorithms,
3352
- :signing_algorithms)
3768
+ :signing_algorithms,
3769
+ :key_agreement_algorithms)
3353
3770
  SENSITIVE = []
3354
3771
  include Aws::Structure
3355
3772
  end
@@ -3360,9 +3777,9 @@ module Aws::KMS
3360
3777
  #
3361
3778
  # KMS applies the grant constraints only to cryptographic operations
3362
3779
  # that support an encryption context, that is, all cryptographic
3363
- # operations with a [symmetric KMS key][3]. Grant constraints are not
3364
- # applied to operations that do not support an encryption context, such
3365
- # as cryptographic operations with asymmetric KMS keys and management
3780
+ # operations with a symmetric KMS key. Grant constraints are not applied
3781
+ # to operations that do not support an encryption context, such as
3782
+ # cryptographic operations with asymmetric KMS keys and management
3366
3783
  # operations, such as DescribeKey or RetireGrant.
3367
3784
  #
3368
3785
  # In a cryptographic operation, the encryption context in the decryption
@@ -3377,15 +3794,14 @@ module Aws::KMS
3377
3794
  # differ only by case. To require a fully case-sensitive encryption
3378
3795
  # context, use the `kms:EncryptionContext:` and
3379
3796
  # `kms:EncryptionContextKeys` conditions in an IAM or key policy. For
3380
- # details, see [kms:EncryptionContext:][4] in the <i> <i>Key Management
3381
- # Service Developer Guide</i> </i>.
3797
+ # details, see [kms:EncryptionContext:context-key][3] in the <i> <i>Key
3798
+ # Management Service Developer Guide</i> </i>.
3382
3799
  #
3383
3800
  #
3384
3801
  #
3385
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
3386
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
3387
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks
3388
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context
3802
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3803
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
3804
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-context
3389
3805
  #
3390
3806
  # @!attribute [rw] encryption_context_subset
3391
3807
  # A list of key-value pairs that must be included in the encryption
@@ -3396,7 +3812,7 @@ module Aws::KMS
3396
3812
  #
3397
3813
  #
3398
3814
  #
3399
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
3815
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3400
3816
  # @return [Hash<String,String>]
3401
3817
  #
3402
3818
  # @!attribute [rw] encryption_context_equals
@@ -3407,7 +3823,7 @@ module Aws::KMS
3407
3823
  #
3408
3824
  #
3409
3825
  #
3410
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
3826
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3411
3827
  # @return [Hash<String,String>]
3412
3828
  #
3413
3829
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GrantConstraints AWS API Documentation
@@ -3496,11 +3912,9 @@ module Aws::KMS
3496
3912
  #
3497
3913
  # The KMS key can be a symmetric encryption KMS key, HMAC KMS key,
3498
3914
  # asymmetric encryption KMS key, or asymmetric signing KMS key,
3499
- # including a [multi-Region
3500
- # key](kms/latest/developerguide/multi-region-keys-overview.html) of
3501
- # any supported type. You cannot perform this operation on a KMS key
3502
- # in a custom key store, or on a KMS key in a different Amazon Web
3503
- # Services account.
3915
+ # including a [multi-Region key][1] of any supported type. You cannot
3916
+ # perform this operation on a KMS key in a custom key store, or on a
3917
+ # KMS key in a different Amazon Web Services account.
3504
3918
  #
3505
3919
  # Specify the key ID or key ARN of the KMS key.
3506
3920
  #
@@ -3513,6 +3927,10 @@ module Aws::KMS
3513
3927
  #
3514
3928
  # To get the key ID and key ARN for a KMS key, use ListKeys or
3515
3929
  # DescribeKey.
3930
+ #
3931
+ #
3932
+ #
3933
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
3516
3934
  # @return [String]
3517
3935
  #
3518
3936
  # @!attribute [rw] import_token
@@ -3564,7 +3982,53 @@ module Aws::KMS
3564
3982
  #
3565
3983
  #
3566
3984
  #
3567
- # [1]: https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration
3985
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-expiration
3986
+ # @return [String]
3987
+ #
3988
+ # @!attribute [rw] import_type
3989
+ # Indicates whether the key material being imported is previously
3990
+ # associated with this KMS key or not. This parameter is optional and
3991
+ # only usable with symmetric encryption keys. If no key material has
3992
+ # ever been imported into the KMS key, and this parameter is omitted,
3993
+ # the parameter defaults to `NEW_KEY_MATERIAL`. After the first key
3994
+ # material is imported, if this parameter is omitted then the
3995
+ # parameter defaults to `EXISTING_KEY_MATERIAL`.
3996
+ #
3997
+ # For multi-Region keys, you must first import new key material into
3998
+ # the primary Region key. You should use the `NEW_KEY_MATERIAL` import
3999
+ # type when importing key material into the primary Region key. Then,
4000
+ # you can import the same key material into the replica Region key.
4001
+ # The import type for the replica Region key should be
4002
+ # `EXISTING_KEY_MATERIAL`.
4003
+ # @return [String]
4004
+ #
4005
+ # @!attribute [rw] key_material_description
4006
+ # Description for the key material being imported. This parameter is
4007
+ # optional and only usable with symmetric encryption keys. If you do
4008
+ # not specify a key material description, KMS retains the value you
4009
+ # specified when you last imported the same key material into this KMS
4010
+ # key.
4011
+ # @return [String]
4012
+ #
4013
+ # @!attribute [rw] key_material_id
4014
+ # Identifies the key material being imported. This parameter is
4015
+ # optional and only usable with symmetric encryption keys. You cannot
4016
+ # specify a key material ID with `ImportType` set to
4017
+ # `NEW_KEY_MATERIAL`. Whenever you import key material into a
4018
+ # symmetric encryption key, KMS assigns a unique identifier to the key
4019
+ # material based on the KMS key ID and the imported key material. When
4020
+ # you re-import key material with a specified key material ID, KMS:
4021
+ #
4022
+ # * Computes the identifier for the key material
4023
+ #
4024
+ # * Matches the computed identifier against the specified key material
4025
+ # ID
4026
+ #
4027
+ # * Verifies that the key material ID is already associated with the
4028
+ # KMS key
4029
+ #
4030
+ # To get the list of key material IDs associated with a KMS key, use
4031
+ # ListKeyRotations.
3568
4032
  # @return [String]
3569
4033
  #
3570
4034
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialRequest AWS API Documentation
@@ -3574,14 +4038,35 @@ module Aws::KMS
3574
4038
  :import_token,
3575
4039
  :encrypted_key_material,
3576
4040
  :valid_to,
3577
- :expiration_model)
4041
+ :expiration_model,
4042
+ :import_type,
4043
+ :key_material_description,
4044
+ :key_material_id)
3578
4045
  SENSITIVE = []
3579
4046
  include Aws::Structure
3580
4047
  end
3581
4048
 
4049
+ # @!attribute [rw] key_id
4050
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key into which
4051
+ # key material was imported.
4052
+ #
4053
+ #
4054
+ #
4055
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
4056
+ # @return [String]
4057
+ #
4058
+ # @!attribute [rw] key_material_id
4059
+ # Identifies the imported key material.
4060
+ # @return [String]
4061
+ #
3582
4062
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialResponse AWS API Documentation
3583
4063
  #
3584
- class ImportKeyMaterialResponse < Aws::EmptyStructure; end
4064
+ class ImportKeyMaterialResponse < Struct.new(
4065
+ :key_id,
4066
+ :key_material_id)
4067
+ SENSITIVE = []
4068
+ include Aws::Structure
4069
+ end
3585
4070
 
3586
4071
  # The request was rejected because the specified KMS key cannot decrypt
3587
4072
  # the data. The `KeyId` in a Decrypt request and the `SourceKeyId` in a
@@ -3600,8 +4085,10 @@ module Aws::KMS
3600
4085
  end
3601
4086
 
3602
4087
  # The request was rejected because the key material in the request is,
3603
- # expired, invalid, or is not the same key material that was previously
3604
- # imported into this KMS key.
4088
+ # expired, invalid, or does not meet expectations. For example, it is
4089
+ # not the same key material that was previously imported or KMS expected
4090
+ # new key material but the key material being imported is already
4091
+ # associated with the KMS key.
3605
4092
  #
3606
4093
  # @!attribute [rw] message
3607
4094
  # @return [String]
@@ -3737,8 +4224,9 @@ module Aws::KMS
3737
4224
  # the `KeyUsage` must be `ENCRYPT_DECRYPT`. For signing and verifying
3738
4225
  # messages, the `KeyUsage` must be `SIGN_VERIFY`. For generating and
3739
4226
  # verifying message authentication codes (MACs), the `KeyUsage` must be
3740
- # `GENERATE_VERIFY_MAC`. To find the `KeyUsage` of a KMS key, use the
3741
- # DescribeKey operation.
4227
+ # `GENERATE_VERIFY_MAC`. For deriving key agreement secrets, the
4228
+ # `KeyUsage` must be `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS
4229
+ # key, use the DescribeKey operation.
3742
4230
  #
3743
4231
  # To find the encryption or signing algorithms supported for a
3744
4232
  # particular KMS key, use the DescribeKey operation.
@@ -3907,7 +4395,7 @@ module Aws::KMS
3907
4395
  #
3908
4396
  #
3909
4397
  #
3910
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
4398
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3911
4399
  # @return [String]
3912
4400
  #
3913
4401
  # @!attribute [rw] key_state
@@ -3934,11 +4422,12 @@ module Aws::KMS
3934
4422
  # @return [Time]
3935
4423
  #
3936
4424
  # @!attribute [rw] valid_to
3937
- # The time at which the imported key material expires. When the key
3938
- # material expires, KMS deletes the key material and the KMS key
3939
- # becomes unusable. This value is present only for KMS keys whose
3940
- # `Origin` is `EXTERNAL` and whose `ExpirationModel` is
3941
- # `KEY_MATERIAL_EXPIRES`, otherwise this value is omitted.
4425
+ # The earliest time at which any imported key material permanently
4426
+ # associated with this KMS key expires. When a key material expires,
4427
+ # KMS deletes the key material and the KMS key becomes unusable. This
4428
+ # value is present only for KMS keys whose `Origin` is `EXTERNAL` and
4429
+ # the `ExpirationModel` is `KEY_MATERIAL_EXPIRES`, otherwise this
4430
+ # value is omitted.
3942
4431
  # @return [Time]
3943
4432
  #
3944
4433
  # @!attribute [rw] origin
@@ -3957,7 +4446,7 @@ module Aws::KMS
3957
4446
  #
3958
4447
  #
3959
4448
  #
3960
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4449
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
3961
4450
  # @return [String]
3962
4451
  #
3963
4452
  # @!attribute [rw] cloud_hsm_cluster_id
@@ -3969,7 +4458,7 @@ module Aws::KMS
3969
4458
  #
3970
4459
  #
3971
4460
  #
3972
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4461
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
3973
4462
  # @return [String]
3974
4463
  #
3975
4464
  # @!attribute [rw] expiration_model
@@ -4017,6 +4506,10 @@ module Aws::KMS
4017
4506
  # `SIGN_VERIFY`.
4018
4507
  # @return [Array<String>]
4019
4508
  #
4509
+ # @!attribute [rw] key_agreement_algorithms
4510
+ # The key agreement algorithm used to derive a shared secret.
4511
+ # @return [Array<String>]
4512
+ #
4020
4513
  # @!attribute [rw] multi_region
4021
4514
  # Indicates whether the KMS key is a multi-Region (`True`) or regional
4022
4515
  # (`False`) key. This value is `True` for multi-Region primary and
@@ -4088,6 +4581,15 @@ module Aws::KMS
4088
4581
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key
4089
4582
  # @return [Types::XksKeyConfigurationType]
4090
4583
  #
4584
+ # @!attribute [rw] current_key_material_id
4585
+ # Identifies the current key material. This value is present for
4586
+ # symmetric encryption keys with `AWS_KMS` or `EXTERNAL` origin. These
4587
+ # KMS keys support automatic or on-demand key rotation and can have
4588
+ # multiple key materials associated with them. KMS uses the current
4589
+ # key material for both encryption and decryption, and the non-current
4590
+ # key material for decryption operations only.
4591
+ # @return [String]
4592
+ #
4091
4593
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyMetadata AWS API Documentation
4092
4594
  #
4093
4595
  class KeyMetadata < Struct.new(
@@ -4110,11 +4612,13 @@ module Aws::KMS
4110
4612
  :key_spec,
4111
4613
  :encryption_algorithms,
4112
4614
  :signing_algorithms,
4615
+ :key_agreement_algorithms,
4113
4616
  :multi_region,
4114
4617
  :multi_region_configuration,
4115
4618
  :pending_deletion_window_in_days,
4116
4619
  :mac_algorithms,
4117
- :xks_key_configuration)
4620
+ :xks_key_configuration,
4621
+ :current_key_material_id)
4118
4622
  SENSITIVE = []
4119
4623
  include Aws::Structure
4120
4624
  end
@@ -4133,9 +4637,9 @@ module Aws::KMS
4133
4637
  include Aws::Structure
4134
4638
  end
4135
4639
 
4136
- # The request was rejected because a quota was exceeded. For more
4137
- # information, see [Quotas][1] in the *Key Management Service Developer
4138
- # Guide*.
4640
+ # The request was rejected because a length constraint or quota was
4641
+ # exceeded. For more information, see [Quotas][1] in the *Key Management
4642
+ # Service Developer Guide*.
4139
4643
  #
4140
4644
  #
4141
4645
  #
@@ -4210,8 +4714,8 @@ module Aws::KMS
4210
4714
  # @!attribute [rw] truncated
4211
4715
  # A flag that indicates whether there are more items in the list. When
4212
4716
  # this value is true, the list in this response is truncated. To get
4213
- # more items, pass the value of the `NextMarker` element in
4214
- # thisresponse to the `Marker` parameter in a subsequent request.
4717
+ # more items, pass the value of the `NextMarker` element in this
4718
+ # response to the `Marker` parameter in a subsequent request.
4215
4719
  # @return [Boolean]
4216
4720
  #
4217
4721
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliasesResponse AWS API Documentation
@@ -4293,8 +4797,8 @@ module Aws::KMS
4293
4797
  # @!attribute [rw] truncated
4294
4798
  # A flag that indicates whether there are more items in the list. When
4295
4799
  # this value is true, the list in this response is truncated. To get
4296
- # more items, pass the value of the `NextMarker` element in
4297
- # thisresponse to the `Marker` parameter in a subsequent request.
4800
+ # more items, pass the value of the `NextMarker` element in this
4801
+ # response to the `Marker` parameter in a subsequent request.
4298
4802
  # @return [Boolean]
4299
4803
  #
4300
4804
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrantsResponse AWS API Documentation
@@ -4363,8 +4867,8 @@ module Aws::KMS
4363
4867
  # @!attribute [rw] truncated
4364
4868
  # A flag that indicates whether there are more items in the list. When
4365
4869
  # this value is true, the list in this response is truncated. To get
4366
- # more items, pass the value of the `NextMarker` element in
4367
- # thisresponse to the `Marker` parameter in a subsequent request.
4870
+ # more items, pass the value of the `NextMarker` element in this
4871
+ # response to the `Marker` parameter in a subsequent request.
4368
4872
  # @return [Boolean]
4369
4873
  #
4370
4874
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPoliciesResponse AWS API Documentation
@@ -4377,6 +4881,90 @@ module Aws::KMS
4377
4881
  include Aws::Structure
4378
4882
  end
4379
4883
 
4884
+ # @!attribute [rw] key_id
4885
+ # Gets the key rotations for the specified KMS key.
4886
+ #
4887
+ # Specify the key ID or key ARN of the KMS key.
4888
+ #
4889
+ # For example:
4890
+ #
4891
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
4892
+ #
4893
+ # * Key ARN:
4894
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4895
+ #
4896
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4897
+ # DescribeKey.
4898
+ # @return [String]
4899
+ #
4900
+ # @!attribute [rw] include_key_material
4901
+ # Use this optional parameter to control which key materials
4902
+ # associated with this key are listed in the response. The default
4903
+ # value of this parameter is `ROTATIONS_ONLY`. If you omit this
4904
+ # parameter, KMS returns information on the key materials created by
4905
+ # automatic or on-demand key rotation. When you specify a value of
4906
+ # `ALL_KEY_MATERIAL`, KMS adds the first key material and any imported
4907
+ # key material pending rotation to the response. This parameter can
4908
+ # only be used with KMS keys that support automatic or on-demand key
4909
+ # rotation.
4910
+ # @return [String]
4911
+ #
4912
+ # @!attribute [rw] limit
4913
+ # Use this parameter to specify the maximum number of items to return.
4914
+ # When this value is present, KMS does not return more than the
4915
+ # specified number of items, but it might return fewer.
4916
+ #
4917
+ # This value is optional. If you include a value, it must be between 1
4918
+ # and 1000, inclusive. If you do not include a value, it defaults to
4919
+ # 100.
4920
+ # @return [Integer]
4921
+ #
4922
+ # @!attribute [rw] marker
4923
+ # Use this parameter in a subsequent request after you receive a
4924
+ # response with truncated results. Set it to the value of `NextMarker`
4925
+ # from the truncated response you just received.
4926
+ # @return [String]
4927
+ #
4928
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsRequest AWS API Documentation
4929
+ #
4930
+ class ListKeyRotationsRequest < Struct.new(
4931
+ :key_id,
4932
+ :include_key_material,
4933
+ :limit,
4934
+ :marker)
4935
+ SENSITIVE = []
4936
+ include Aws::Structure
4937
+ end
4938
+
4939
+ # @!attribute [rw] rotations
4940
+ # A list of completed key material rotations. When the optional input
4941
+ # parameter `IncludeKeyMaterial` is specified with a value of
4942
+ # `ALL_KEY_MATERIAL`, this list includes the first key material and
4943
+ # any imported key material pending rotation.
4944
+ # @return [Array<Types::RotationsListEntry>]
4945
+ #
4946
+ # @!attribute [rw] next_marker
4947
+ # When `Truncated` is true, this element is present and contains the
4948
+ # value to use for the `Marker` parameter in a subsequent request.
4949
+ # @return [String]
4950
+ #
4951
+ # @!attribute [rw] truncated
4952
+ # A flag that indicates whether there are more items in the list. When
4953
+ # this value is true, the list in this response is truncated. To get
4954
+ # more items, pass the value of the `NextMarker` element in this
4955
+ # response to the `Marker` parameter in a subsequent request.
4956
+ # @return [Boolean]
4957
+ #
4958
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsResponse AWS API Documentation
4959
+ #
4960
+ class ListKeyRotationsResponse < Struct.new(
4961
+ :rotations,
4962
+ :next_marker,
4963
+ :truncated)
4964
+ SENSITIVE = []
4965
+ include Aws::Structure
4966
+ end
4967
+
4380
4968
  # @!attribute [rw] limit
4381
4969
  # Use this parameter to specify the maximum number of items to return.
4382
4970
  # When this value is present, KMS does not return more than the
@@ -4414,8 +5002,8 @@ module Aws::KMS
4414
5002
  # @!attribute [rw] truncated
4415
5003
  # A flag that indicates whether there are more items in the list. When
4416
5004
  # this value is true, the list in this response is truncated. To get
4417
- # more items, pass the value of the `NextMarker` element in
4418
- # thisresponse to the `Marker` parameter in a subsequent request.
5005
+ # more items, pass the value of the `NextMarker` element in this
5006
+ # response to the `Marker` parameter in a subsequent request.
4419
5007
  # @return [Boolean]
4420
5008
  #
4421
5009
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeysResponse AWS API Documentation
@@ -4496,8 +5084,8 @@ module Aws::KMS
4496
5084
  # @!attribute [rw] truncated
4497
5085
  # A flag that indicates whether there are more items in the list. When
4498
5086
  # this value is true, the list in this response is truncated. To get
4499
- # more items, pass the value of the `NextMarker` element in
4500
- # thisresponse to the `Marker` parameter in a subsequent request.
5087
+ # more items, pass the value of the `NextMarker` element in this
5088
+ # response to the `Marker` parameter in a subsequent request.
4501
5089
  # @return [Boolean]
4502
5090
  #
4503
5091
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTagsResponse AWS API Documentation
@@ -4650,7 +5238,8 @@ module Aws::KMS
4650
5238
  # @return [String]
4651
5239
  #
4652
5240
  # @!attribute [rw] policy_name
4653
- # The name of the key policy. The only valid value is `default`.
5241
+ # The name of the key policy. If no policy name is specified, the
5242
+ # default value is `default`. The only valid value is `default`.
4654
5243
  # @return [String]
4655
5244
  #
4656
5245
  # @!attribute [rw] policy
@@ -4674,6 +5263,18 @@ module Aws::KMS
4674
5263
  # that I make are not always immediately visible][2] in the *Amazon
4675
5264
  # Web Services Identity and Access Management User Guide*.
4676
5265
  #
5266
+ # <note markdown="1"> If either of the required `Resource` or `Action` elements are
5267
+ # missing from a key policy statement, the policy statement has no
5268
+ # effect. When a key policy statement is missing one of these
5269
+ # elements, the KMS console correctly reports an error, but the
5270
+ # `PutKeyPolicy` API request succeeds, even though the policy
5271
+ # statement is ineffective.
5272
+ #
5273
+ # For more information on required key policy elements, see [Elements
5274
+ # in a key policy][3] in the *Key Management Service Developer Guide*.
5275
+ #
5276
+ # </note>
5277
+ #
4677
5278
  # A key policy document can include only the following characters:
4678
5279
  #
4679
5280
  # * Printable ASCII characters from the space character (`\u0020`)
@@ -4685,18 +5286,24 @@ module Aws::KMS
4685
5286
  # * The tab (`\u0009`), line feed (`\u000A`), and carriage return
4686
5287
  # (`\u000D`) special characters
4687
5288
  #
4688
- # For information about key policies, see [Key policies in KMS][3] in
5289
+ # <note markdown="1"> If the key policy exceeds the length constraint, KMS returns a
5290
+ # `LimitExceededException`.
5291
+ #
5292
+ # </note>
5293
+ #
5294
+ # For information about key policies, see [Key policies in KMS][4] in
4689
5295
  # the *Key Management Service Developer Guide*.For help writing and
4690
5296
  # formatting a JSON policy document, see the [IAM JSON Policy
4691
- # Reference][4] in the <i> <i>Identity and Access Management User
5297
+ # Reference][5] in the <i> <i>Identity and Access Management User
4692
5298
  # Guide</i> </i>.
4693
5299
  #
4694
5300
  #
4695
5301
  #
4696
5302
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
4697
5303
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
4698
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4699
- # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
5304
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements
5305
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
5306
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
4700
5307
  # @return [String]
4701
5308
  #
4702
5309
  # @!attribute [rw] bypass_policy_lockout_safety_check
@@ -4754,7 +5361,7 @@ module Aws::KMS
4754
5361
  #
4755
5362
  #
4756
5363
  #
4757
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5364
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4758
5365
  # @return [Hash<String,String>]
4759
5366
  #
4760
5367
  # @!attribute [rw] source_key_id
@@ -4844,7 +5451,7 @@ module Aws::KMS
4844
5451
  #
4845
5452
  #
4846
5453
  #
4847
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5454
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4848
5455
  # @return [Hash<String,String>]
4849
5456
  #
4850
5457
  # @!attribute [rw] source_encryption_algorithm
@@ -4881,19 +5488,19 @@ module Aws::KMS
4881
5488
  #
4882
5489
  #
4883
5490
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4884
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
5491
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
4885
5492
  # @return [Array<String>]
4886
5493
  #
4887
5494
  # @!attribute [rw] dry_run
4888
5495
  # Checks if your request will succeed. `DryRun` is an optional
4889
5496
  # parameter.
4890
5497
  #
4891
- # To learn more about how to use this parameter, see [Testing your KMS
4892
- # API calls][1] in the *Key Management Service Developer Guide*.
5498
+ # To learn more about how to use this parameter, see [Testing your
5499
+ # permissions][1] in the *Key Management Service Developer Guide*.
4893
5500
  #
4894
5501
  #
4895
5502
  #
4896
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5503
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
4897
5504
  # @return [Boolean]
4898
5505
  #
4899
5506
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptRequest AWS API Documentation
@@ -4941,6 +5548,18 @@ module Aws::KMS
4941
5548
  # The encryption algorithm that was used to reencrypt the data.
4942
5549
  # @return [String]
4943
5550
  #
5551
+ # @!attribute [rw] source_key_material_id
5552
+ # The identifier of the key material used to originally encrypt the
5553
+ # data. This field is present only when the original encryption used a
5554
+ # symmetric encryption KMS key.
5555
+ # @return [String]
5556
+ #
5557
+ # @!attribute [rw] destination_key_material_id
5558
+ # The identifier of the key material used to reencrypt the data. This
5559
+ # field is present only when data is reencrypted using a symmetric
5560
+ # encryption KMS key.
5561
+ # @return [String]
5562
+ #
4944
5563
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptResponse AWS API Documentation
4945
5564
  #
4946
5565
  class ReEncryptResponse < Struct.new(
@@ -4948,7 +5567,9 @@ module Aws::KMS
4948
5567
  :source_key_id,
4949
5568
  :key_id,
4950
5569
  :source_encryption_algorithm,
4951
- :destination_encryption_algorithm)
5570
+ :destination_encryption_algorithm,
5571
+ :source_key_material_id,
5572
+ :destination_key_material_id)
4952
5573
  SENSITIVE = []
4953
5574
  include Aws::Structure
4954
5575
  end
@@ -4957,24 +5578,26 @@ module Aws::KMS
4957
5578
  # the API operation.
4958
5579
  #
4959
5580
  # This data type is designed to support Amazon Web Services Nitro
4960
- # Enclaves, which lets you create an isolated compute environment in
4961
- # Amazon EC2. For information about the interaction between KMS and
4962
- # Amazon Web Services Nitro Enclaves, see [How Amazon Web Services Nitro
4963
- # Enclaves uses KMS][1] in the *Key Management Service Developer Guide*.
5581
+ # Enclaves and Amazon Web Services NitroTPM, which lets you create an
5582
+ # attested environment in Amazon EC2. For information about the
5583
+ # interaction between KMS and Amazon Web Services Nitro Enclaves or
5584
+ # Amazon Web Services NitroTPM, see [Cryptographic attestation support
5585
+ # in KMS][1] in the *Key Management Service Developer Guide*.
4964
5586
  #
4965
5587
  #
4966
5588
  #
4967
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5589
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
4968
5590
  #
4969
5591
  # @!attribute [rw] key_encryption_algorithm
4970
5592
  # The encryption algorithm that KMS should use with the public key for
4971
- # an Amazon Web Services Nitro Enclave to encrypt plaintext values for
4972
- # the response. The only valid value is `RSAES_OAEP_SHA_256`.
5593
+ # an Amazon Web Services Nitro Enclave or NitroTPM to encrypt
5594
+ # plaintext values for the response. The only valid value is
5595
+ # `RSAES_OAEP_SHA_256`.
4973
5596
  # @return [String]
4974
5597
  #
4975
5598
  # @!attribute [rw] attestation_document
4976
- # The attestation document for an Amazon Web Services Nitro Enclave.
4977
- # This document includes the enclave's public key.
5599
+ # The attestation document for an Amazon Web Services Nitro Enclave or
5600
+ # a NitroTPM. This document includes the enclave's public key.
4978
5601
  # @return [String]
4979
5602
  #
4980
5603
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RecipientInfo AWS API Documentation
@@ -5014,33 +5637,23 @@ module Aws::KMS
5014
5637
  # [KMS service endpoints][1] in the *Amazon Web Services General
5015
5638
  # Reference*.
5016
5639
  #
5017
- # <note markdown="1"> HMAC KMS keys are not supported in all Amazon Web Services Regions.
5018
- # If you try to replicate an HMAC KMS key in an Amazon Web Services
5019
- # Region in which HMAC keys are not supported, the `ReplicateKey`
5020
- # operation returns an `UnsupportedOperationException`. For a list of
5021
- # Regions in which HMAC KMS keys are supported, see [HMAC keys in
5022
- # KMS][2] in the *Key Management Service Developer Guide*.
5023
- #
5024
- # </note>
5025
- #
5026
5640
  # The replica must be in a different Amazon Web Services Region than
5027
5641
  # its primary key and other replicas of that primary key, but in the
5028
5642
  # same Amazon Web Services partition. KMS must be available in the
5029
5643
  # replica Region. If the Region is not enabled by default, the Amazon
5030
5644
  # Web Services account must be enabled in the Region. For information
5031
5645
  # about Amazon Web Services partitions, see [Amazon Resource Names
5032
- # (ARNs)][3] in the *Amazon Web Services General Reference*. For
5646
+ # (ARNs)][2] in the *Amazon Web Services General Reference*. For
5033
5647
  # information about enabling and disabling Regions, see [Enabling a
5034
- # Region][4] and [Disabling a Region][5] in the *Amazon Web Services
5648
+ # Region][3] and [Disabling a Region][4] in the *Amazon Web Services
5035
5649
  # General Reference*.
5036
5650
  #
5037
5651
  #
5038
5652
  #
5039
5653
  # [1]: https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region
5040
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
5041
- # [3]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
5042
- # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
5043
- # [5]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
5654
+ # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
5655
+ # [3]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
5656
+ # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
5044
5657
  # @return [String]
5045
5658
  #
5046
5659
  # @!attribute [rw] policy
@@ -5090,7 +5703,7 @@ module Aws::KMS
5090
5703
  #
5091
5704
  #
5092
5705
  #
5093
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
5706
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html
5094
5707
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
5095
5708
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
5096
5709
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
@@ -5163,7 +5776,7 @@ module Aws::KMS
5163
5776
  # When you add tags to an Amazon Web Services resource, Amazon Web
5164
5777
  # Services generates a cost allocation report with usage and costs
5165
5778
  # aggregated by tags. Tags can also be used to control access to a KMS
5166
- # key. For details, see [Tagging Keys][3].
5779
+ # key. For details, see [Tags in KMS][3].
5167
5780
  #
5168
5781
  #
5169
5782
  #
@@ -5254,12 +5867,12 @@ module Aws::KMS
5254
5867
  # Checks if your request will succeed. `DryRun` is an optional
5255
5868
  # parameter.
5256
5869
  #
5257
- # To learn more about how to use this parameter, see [Testing your KMS
5258
- # API calls][1] in the *Key Management Service Developer Guide*.
5870
+ # To learn more about how to use this parameter, see [Testing your
5871
+ # permissions][1] in the *Key Management Service Developer Guide*.
5259
5872
  #
5260
5873
  #
5261
5874
  #
5262
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5875
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5263
5876
  # @return [Boolean]
5264
5877
  #
5265
5878
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RetireGrantRequest AWS API Documentation
@@ -5302,12 +5915,12 @@ module Aws::KMS
5302
5915
  # Checks if your request will succeed. `DryRun` is an optional
5303
5916
  # parameter.
5304
5917
  #
5305
- # To learn more about how to use this parameter, see [Testing your KMS
5306
- # API calls][1] in the *Key Management Service Developer Guide*.
5918
+ # To learn more about how to use this parameter, see [Testing your
5919
+ # permissions][1] in the *Key Management Service Developer Guide*.
5307
5920
  #
5308
5921
  #
5309
5922
  #
5310
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5923
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5311
5924
  # @return [Boolean]
5312
5925
  #
5313
5926
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrantRequest AWS API Documentation
@@ -5320,6 +5933,153 @@ module Aws::KMS
5320
5933
  include Aws::Structure
5321
5934
  end
5322
5935
 
5936
+ # @!attribute [rw] key_id
5937
+ # Identifies a symmetric encryption KMS key. You cannot perform
5938
+ # on-demand rotation of [asymmetric KMS keys][1], [HMAC KMS keys][2],
5939
+ # multi-Region KMS keys with [imported key material][3], or KMS keys
5940
+ # in a [custom key store][4]. To perform on-demand rotation of a set
5941
+ # of related [multi-Region keys][5], invoke the on-demand rotation on
5942
+ # the primary key.
5943
+ #
5944
+ # Specify the key ID or key ARN of the KMS key.
5945
+ #
5946
+ # For example:
5947
+ #
5948
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
5949
+ #
5950
+ # * Key ARN:
5951
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
5952
+ #
5953
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
5954
+ # DescribeKey.
5955
+ #
5956
+ #
5957
+ #
5958
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
5959
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
5960
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
5961
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
5962
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
5963
+ # @return [String]
5964
+ #
5965
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandRequest AWS API Documentation
5966
+ #
5967
+ class RotateKeyOnDemandRequest < Struct.new(
5968
+ :key_id)
5969
+ SENSITIVE = []
5970
+ include Aws::Structure
5971
+ end
5972
+
5973
+ # @!attribute [rw] key_id
5974
+ # Identifies the symmetric encryption KMS key that you initiated
5975
+ # on-demand rotation on.
5976
+ # @return [String]
5977
+ #
5978
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandResponse AWS API Documentation
5979
+ #
5980
+ class RotateKeyOnDemandResponse < Struct.new(
5981
+ :key_id)
5982
+ SENSITIVE = []
5983
+ include Aws::Structure
5984
+ end
5985
+
5986
+ # Each entry contains information about one of the key materials
5987
+ # associated with a KMS key.
5988
+ #
5989
+ # @!attribute [rw] key_id
5990
+ # Unique identifier of the key.
5991
+ # @return [String]
5992
+ #
5993
+ # @!attribute [rw] key_material_id
5994
+ # Unique identifier of the key material.
5995
+ # @return [String]
5996
+ #
5997
+ # @!attribute [rw] key_material_description
5998
+ # User-specified description of the key material. This field is only
5999
+ # present for symmetric encryption KMS keys with `EXTERNAL` origin.
6000
+ # @return [String]
6001
+ #
6002
+ # @!attribute [rw] import_state
6003
+ # Indicates if the key material is currently imported into KMS. It has
6004
+ # two possible values: `IMPORTED` or `PENDING_IMPORT`. This field is
6005
+ # only present for symmetric encryption KMS keys with `EXTERNAL`
6006
+ # origin.
6007
+ # @return [String]
6008
+ #
6009
+ # @!attribute [rw] key_material_state
6010
+ # There are four possible values for this field: `CURRENT`,
6011
+ # `NON_CURRENT`, `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` and
6012
+ # `PENDING_ROTATION`. KMS uses `CURRENT` key material for both
6013
+ # encryption and decryption and `NON_CURRENT` key material only for
6014
+ # decryption. `PENDING_ROTATION` identifies key material that has been
6015
+ # imported for on-demand key rotation but the rotation hasn't
6016
+ # completed. The key material state
6017
+ # `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` is unique to
6018
+ # multi-region, symmetric encryption keys with imported key material.
6019
+ # It indicates key material that has been imported into the primary
6020
+ # Region key but not all of the replica Region keys. When this key
6021
+ # material is imported in to all of the replica Region keys, the key
6022
+ # material state will change to `PENDING_ROTATION`. Key material in
6023
+ # `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` or `PENDING_ROTATION`
6024
+ # state is not permanently associated with the KMS key. You can delete
6025
+ # this key material and import different key material in its place.
6026
+ # The `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` and
6027
+ # `PENDING_ROTATION` values are only used in symmetric encryption keys
6028
+ # with imported key material. The other values, `CURRENT` and
6029
+ # `NON_CURRENT`, are used for all KMS keys that support automatic or
6030
+ # on-demand key rotation.
6031
+ # @return [String]
6032
+ #
6033
+ # @!attribute [rw] expiration_model
6034
+ # Indicates if the key material is configured to automatically expire.
6035
+ # There are two possible values for this field: `KEY_MATERIAL_EXPIRES`
6036
+ # and `KEY_MATERIAL_DOES_NOT_EXPIRE`. For any key material that
6037
+ # expires, the expiration date and time is indicated in `ValidTo`.
6038
+ # This field is only present for symmetric encryption KMS keys with
6039
+ # `EXTERNAL` origin.
6040
+ # @return [String]
6041
+ #
6042
+ # @!attribute [rw] valid_to
6043
+ # Date and time at which the key material expires. This field is only
6044
+ # present for symmetric encryption KMS keys with `EXTERNAL` origin in
6045
+ # rotation list entries with an `ExpirationModel` value of
6046
+ # `KEY_MATERIAL_EXPIRES`.
6047
+ # @return [Time]
6048
+ #
6049
+ # @!attribute [rw] rotation_date
6050
+ # Date and time that the key material rotation completed. Formatted as
6051
+ # Unix time. This field is not present for the first key material or
6052
+ # an imported key material in `PENDING_ROTATION` state.
6053
+ # @return [Time]
6054
+ #
6055
+ # @!attribute [rw] rotation_type
6056
+ # Identifies whether the key material rotation was a scheduled
6057
+ # [automatic rotation][1] or an [on-demand rotation][2]. This field is
6058
+ # not present for the first key material or an imported key material
6059
+ # in `PENDING_ROTATION` state.
6060
+ #
6061
+ #
6062
+ #
6063
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html
6064
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-on-demand.html
6065
+ # @return [String]
6066
+ #
6067
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotationsListEntry AWS API Documentation
6068
+ #
6069
+ class RotationsListEntry < Struct.new(
6070
+ :key_id,
6071
+ :key_material_id,
6072
+ :key_material_description,
6073
+ :import_state,
6074
+ :key_material_state,
6075
+ :expiration_model,
6076
+ :valid_to,
6077
+ :rotation_date,
6078
+ :rotation_type)
6079
+ SENSITIVE = []
6080
+ include Aws::Structure
6081
+ end
6082
+
5323
6083
  # @!attribute [rw] key_id
5324
6084
  # The unique identifier of the KMS key to delete.
5325
6085
  #
@@ -5451,27 +6211,41 @@ module Aws::KMS
5451
6211
  # Tells KMS whether the value of the `Message` parameter should be
5452
6212
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
5453
6213
  # messages; use `DIGEST` for message digests, which are already
5454
- # hashed.
6214
+ # hashed; use `EXTERNAL_MU` for 64-byte representative μ used in
6215
+ # ML-DSA signing as defined in NIST FIPS 204 Section 6.2.
5455
6216
  #
5456
6217
  # When the value of `MessageType` is `RAW`, KMS uses the standard
5457
6218
  # signing algorithm, which begins with a hash function. When the value
5458
6219
  # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
6220
+ # When the value is `EXTERNAL_MU` KMS skips the concatenated hashing
6221
+ # of the public key hash and the message done in the ML-DSA signing
6222
+ # algorithm.
6223
+ #
6224
+ # Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the
6225
+ # `Message` parameter is a message digest. If you use the `DIGEST`
6226
+ # value with an unhashed message, the security of the signing
6227
+ # operation can be compromised.
5459
6228
  #
5460
- # Use the `DIGEST` value only when the value of the `Message`
5461
- # parameter is a message digest. If you use the `DIGEST` value with an
5462
- # unhashed message, the security of the signing operation can be
5463
- # compromised.
6229
+ # When using ECC\_NIST\_EDWARDS25519 KMS keys:
5464
6230
  #
5465
- # When the value of `MessageType`is `DIGEST`, the length of the
6231
+ # * ED25519\_SHA\_512 signing algorithm requires KMS `MessageType:RAW`
6232
+ #
6233
+ # * ED25519\_PH\_SHA\_512 signing algorithm requires KMS
6234
+ # `MessageType:DIGEST`
6235
+ #
6236
+ # When the value of `MessageType` is `DIGEST`, the length of the
5466
6237
  # `Message` value must match the length of hashed messages for the
5467
6238
  # specified signing algorithm.
5468
6239
  #
6240
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
6241
+ # `Message` value must be 64 bytes.
6242
+ #
5469
6243
  # You can submit a message digest and omit the `MessageType` or
5470
6244
  # specify `RAW` so the digest is hashed again while signing. However,
5471
6245
  # this can cause verification failures when verifying with a system
5472
6246
  # that assumes a single hash.
5473
6247
  #
5474
- # The hashing algorithm in that `Sign` uses is based on the
6248
+ # The hashing algorithm that `Sign` uses is based on the
5475
6249
  # `SigningAlgorithm` value.
5476
6250
  #
5477
6251
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -5483,12 +6257,15 @@ module Aws::KMS
5483
6257
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
5484
6258
  # algorithm.
5485
6259
  #
6260
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256
6261
+ # hashing algorithm.
6262
+ #
5486
6263
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
5487
6264
  # verification with SM2 key pairs][1].
5488
6265
  #
5489
6266
  #
5490
6267
  #
5491
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
6268
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
5492
6269
  # @return [String]
5493
6270
  #
5494
6271
  # @!attribute [rw] grant_tokens
@@ -5502,7 +6279,7 @@ module Aws::KMS
5502
6279
  #
5503
6280
  #
5504
6281
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5505
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
6282
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
5506
6283
  # @return [Array<String>]
5507
6284
  #
5508
6285
  # @!attribute [rw] signing_algorithm
@@ -5518,12 +6295,12 @@ module Aws::KMS
5518
6295
  # Checks if your request will succeed. `DryRun` is an optional
5519
6296
  # parameter.
5520
6297
  #
5521
- # To learn more about how to use this parameter, see [Testing your KMS
5522
- # API calls][1] in the *Key Management Service Developer Guide*.
6298
+ # To learn more about how to use this parameter, see [Testing your
6299
+ # permissions][1] in the *Key Management Service Developer Guide*.
5523
6300
  #
5524
6301
  #
5525
6302
  #
5526
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
6303
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5527
6304
  # @return [Boolean]
5528
6305
  #
5529
6306
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/SignRequest AWS API Documentation
@@ -5748,8 +6525,8 @@ module Aws::KMS
5748
6525
  #
5749
6526
  #
5750
6527
  #
5751
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
5752
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
6528
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
6529
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
5753
6530
  # @return [String]
5754
6531
  #
5755
6532
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateAliasRequest AWS API Documentation
@@ -5863,6 +6640,16 @@ module Aws::KMS
5863
6640
  # To change this value, the external key store must be disconnected.
5864
6641
  # @return [String]
5865
6642
  #
6643
+ # @!attribute [rw] xks_proxy_vpc_endpoint_service_owner
6644
+ # Changes the Amazon Web Services account ID that KMS uses to identify
6645
+ # the Amazon VPC endpoint service for your external key store proxy
6646
+ # (XKS proxy). This parameter is optional. If not specified, the
6647
+ # current Amazon Web Services account ID for the VPC endpoint service
6648
+ # will not be updated.
6649
+ #
6650
+ # To change this value, the external key store must be disconnected.
6651
+ # @return [String]
6652
+ #
5866
6653
  # @!attribute [rw] xks_proxy_authentication_credential
5867
6654
  # Changes the credentials that KMS uses to sign requests to the
5868
6655
  # external key store proxy (XKS proxy). This parameter is valid only
@@ -5910,6 +6697,7 @@ module Aws::KMS
5910
6697
  :xks_proxy_uri_endpoint,
5911
6698
  :xks_proxy_uri_path,
5912
6699
  :xks_proxy_vpc_endpoint_service_name,
6700
+ :xks_proxy_vpc_endpoint_service_owner,
5913
6701
  :xks_proxy_authentication_credential,
5914
6702
  :xks_proxy_connectivity)
5915
6703
  SENSITIVE = [:key_store_password]
@@ -6028,19 +6816,19 @@ module Aws::KMS
6028
6816
  #
6029
6817
  #
6030
6818
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
6031
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
6819
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
6032
6820
  # @return [Array<String>]
6033
6821
  #
6034
6822
  # @!attribute [rw] dry_run
6035
6823
  # Checks if your request will succeed. `DryRun` is an optional
6036
6824
  # parameter.
6037
6825
  #
6038
- # To learn more about how to use this parameter, see [Testing your KMS
6039
- # API calls][1] in the *Key Management Service Developer Guide*.
6826
+ # To learn more about how to use this parameter, see [Testing your
6827
+ # permissions][1] in the *Key Management Service Developer Guide*.
6040
6828
  #
6041
6829
  #
6042
6830
  #
6043
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
6831
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
6044
6832
  # @return [Boolean]
6045
6833
  #
6046
6834
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyMacRequest AWS API Documentation
@@ -6124,28 +6912,42 @@ module Aws::KMS
6124
6912
  # Tells KMS whether the value of the `Message` parameter should be
6125
6913
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
6126
6914
  # messages; use `DIGEST` for message digests, which are already
6127
- # hashed.
6915
+ # hashed; use `EXTERNAL_MU` for 64-byte representative μ used in
6916
+ # ML-DSA signing as defined in NIST FIPS 204 Section 6.2.
6128
6917
  #
6129
6918
  # When the value of `MessageType` is `RAW`, KMS uses the standard
6130
6919
  # signing algorithm, which begins with a hash function. When the value
6131
6920
  # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
6921
+ # When the value is `EXTERNAL_MU` KMS skips the concatenated hashing
6922
+ # of the public key hash and the message done in the ML-DSA signing
6923
+ # algorithm.
6924
+ #
6925
+ # Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the
6926
+ # `Message` parameter is a message digest. If you use the `DIGEST`
6927
+ # value with an unhashed message, the security of the signing
6928
+ # operation can be compromised.
6929
+ #
6930
+ # When using ECC\_NIST\_EDWARDS25519 KMS keys:
6132
6931
  #
6133
- # Use the `DIGEST` value only when the value of the `Message`
6134
- # parameter is a message digest. If you use the `DIGEST` value with an
6135
- # unhashed message, the security of the verification operation can be
6136
- # compromised.
6932
+ # * ED25519\_SHA\_512 signing algorithm requires KMS `MessageType:RAW`
6137
6933
  #
6138
- # When the value of `MessageType`is `DIGEST`, the length of the
6934
+ # * ED25519\_PH\_SHA\_512 signing algorithm requires KMS
6935
+ # `MessageType:DIGEST`
6936
+ #
6937
+ # When the value of `MessageType` is `DIGEST`, the length of the
6139
6938
  # `Message` value must match the length of hashed messages for the
6140
6939
  # specified signing algorithm.
6141
6940
  #
6941
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
6942
+ # `Message` value must be 64 bytes.
6943
+ #
6142
6944
  # You can submit a message digest and omit the `MessageType` or
6143
6945
  # specify `RAW` so the digest is hashed again while signing. However,
6144
6946
  # if the signed message is hashed once while signing, but twice while
6145
6947
  # verifying, verification fails, even when the message hasn't
6146
6948
  # changed.
6147
6949
  #
6148
- # The hashing algorithm in that `Verify` uses is based on the
6950
+ # The hashing algorithm that `Verify` uses is based on the
6149
6951
  # `SigningAlgorithm` value.
6150
6952
  #
6151
6953
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -6157,12 +6959,15 @@ module Aws::KMS
6157
6959
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
6158
6960
  # algorithm.
6159
6961
  #
6962
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256
6963
+ # hashing algorithm.
6964
+ #
6160
6965
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
6161
6966
  # verification with SM2 key pairs][1].
6162
6967
  #
6163
6968
  #
6164
6969
  #
6165
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
6970
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
6166
6971
  # @return [String]
6167
6972
  #
6168
6973
  # @!attribute [rw] signature
@@ -6185,19 +6990,19 @@ module Aws::KMS
6185
6990
  #
6186
6991
  #
6187
6992
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
6188
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
6993
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
6189
6994
  # @return [Array<String>]
6190
6995
  #
6191
6996
  # @!attribute [rw] dry_run
6192
6997
  # Checks if your request will succeed. `DryRun` is an optional
6193
6998
  # parameter.
6194
6999
  #
6195
- # To learn more about how to use this parameter, see [Testing your KMS
6196
- # API calls][1] in the *Key Management Service Developer Guide*.
7000
+ # To learn more about how to use this parameter, see [Testing your
7001
+ # permissions][1] in the *Key Management Service Developer Guide*.
6197
7002
  #
6198
7003
  #
6199
7004
  #
6200
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
7005
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
6201
7006
  # @return [Boolean]
6202
7007
  #
6203
7008
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyRequest AWS API Documentation
@@ -6398,6 +7203,13 @@ module Aws::KMS
6398
7203
  # with KMS.
6399
7204
  # @return [String]
6400
7205
  #
7206
+ # @!attribute [rw] vpc_endpoint_service_owner
7207
+ # The Amazon Web Services account ID that owns the Amazon VPC endpoint
7208
+ # service used to communicate with the external key store proxy (XKS).
7209
+ # This field appears only when the XKS uses an VPC endpoint service to
7210
+ # communicate with KMS.
7211
+ # @return [String]
7212
+ #
6401
7213
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyConfigurationType AWS API Documentation
6402
7214
  #
6403
7215
  class XksProxyConfigurationType < Struct.new(
@@ -6405,7 +7217,8 @@ module Aws::KMS
6405
7217
  :access_key_id,
6406
7218
  :uri_endpoint,
6407
7219
  :uri_path,
6408
- :vpc_endpoint_service_name)
7220
+ :vpc_endpoint_service_name,
7221
+ :vpc_endpoint_service_owner)
6409
7222
  SENSITIVE = [:access_key_id]
6410
7223
  include Aws::Structure
6411
7224
  end
@@ -6567,3 +7380,4 @@ module Aws::KMS
6567
7380
 
6568
7381
  end
6569
7382
  end
7383
+