aws-sdk-kms 1.112.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.
@@ -1083,6 +1083,13 @@ module Aws::KMS
1083
1083
  #
1084
1084
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements
1085
1085
  #
1086
+ # @option params [String] :xks_proxy_vpc_endpoint_service_owner
1087
+ # Specifies the Amazon Web Services account ID that owns the Amazon VPC
1088
+ # service endpoint for the interface that is used to communicate with
1089
+ # your external key store proxy (XKS proxy). This parameter is optional.
1090
+ # If not provided, the Amazon Web Services account ID calling the action
1091
+ # will be used.
1092
+ #
1086
1093
  # @option params [Types::XksProxyAuthenticationCredentialType] :xks_proxy_authentication_credential
1087
1094
  # Specifies an authentication credential for the external key store
1088
1095
  # proxy (XKS proxy). This parameter is required for all custom key
@@ -1209,6 +1216,7 @@ module Aws::KMS
1209
1216
  # xks_proxy_uri_endpoint: "XksProxyUriEndpointType",
1210
1217
  # xks_proxy_uri_path: "XksProxyUriPathType",
1211
1218
  # xks_proxy_vpc_endpoint_service_name: "XksProxyVpcEndpointServiceNameType",
1219
+ # xks_proxy_vpc_endpoint_service_owner: "AccountIdType",
1212
1220
  # xks_proxy_authentication_credential: {
1213
1221
  # access_key_id: "XksProxyAuthenticationAccessKeyIdType", # required
1214
1222
  # raw_secret_access_key: "XksProxyAuthenticationRawSecretAccessKeyType", # required
@@ -1568,8 +1576,8 @@ module Aws::KMS
1568
1576
  # download the public key so it can be used outside of KMS. Each KMS
1569
1577
  # key can have only one key usage. KMS keys with RSA key pairs can be
1570
1578
  # used to encrypt and decrypt data or sign and verify messages (but
1571
- # not both). KMS keys with NIST-recommended ECC key pairs can be used
1572
- # to sign and verify messages or derive shared secrets (but not both).
1579
+ # not both). KMS keys with NIST-standard ECC key pairs can be used to
1580
+ # sign and verify messages or derive shared secrets (but not both).
1573
1581
  # KMS keys with `ECC_SECG_P256K1` can be used only to sign and verify
1574
1582
  # messages. KMS keys with ML-DSA key pairs can be used to sign and
1575
1583
  # verify messages. KMS keys with SM2 key pairs (China Regions only)
@@ -1804,8 +1812,10 @@ module Aws::KMS
1804
1812
  # Determines the [cryptographic operations][1] for which you can use the
1805
1813
  # KMS key. The default value is `ENCRYPT_DECRYPT`. This parameter is
1806
1814
  # optional when you are creating a symmetric encryption KMS key;
1807
- # otherwise, it is required. You can't change the `KeyUsage` value
1808
- # after the KMS key is created.
1815
+ # otherwise, it is required. You can't change the [ `KeyUsage` ][2]
1816
+ # value after the KMS key is created. Each KMS key can have only one key
1817
+ # usage. This follows key usage best practices according to [NIST SP
1818
+ # 800-57 Recommendations for Key Management][3], section 5.2, Key usage.
1809
1819
  #
1810
1820
  # Select only one valid value.
1811
1821
  #
@@ -1817,8 +1827,8 @@ module Aws::KMS
1817
1827
  # * For asymmetric KMS keys with RSA key pairs, specify
1818
1828
  # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
1819
1829
  #
1820
- # * For asymmetric KMS keys with NIST-recommended elliptic curve key
1821
- # pairs, specify `SIGN_VERIFY` or `KEY_AGREEMENT`.
1830
+ # * For asymmetric KMS keys with NIST-standard elliptic curve key pairs,
1831
+ # specify `SIGN_VERIFY` or `KEY_AGREEMENT`.
1822
1832
  #
1823
1833
  # * For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs, specify
1824
1834
  # `SIGN_VERIFY`.
@@ -1832,6 +1842,8 @@ module Aws::KMS
1832
1842
  #
1833
1843
  #
1834
1844
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
1845
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#key-usage
1846
+ # [3]: https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final
1835
1847
  #
1836
1848
  # @option params [String] :customer_master_key_spec
1837
1849
  # Instead, use the `KeySpec` parameter.
@@ -1887,7 +1899,7 @@ module Aws::KMS
1887
1899
  # * `RSA_3072`
1888
1900
  #
1889
1901
  # * `RSA_4096`
1890
- # * Asymmetric NIST-recommended elliptic curve key pairs (signing and
1902
+ # * Asymmetric NIST-standard elliptic curve key pairs (signing and
1891
1903
  # verification -or- deriving shared secrets)
1892
1904
  #
1893
1905
  # * `ECC_NIST_P256` (secp256r1)
@@ -1895,6 +1907,17 @@ module Aws::KMS
1895
1907
  # * `ECC_NIST_P384` (secp384r1)
1896
1908
  #
1897
1909
  # * `ECC_NIST_P521` (secp521r1)
1910
+ #
1911
+ # * `ECC_NIST_EDWARDS25519` (ed25519) - signing and verification only
1912
+ #
1913
+ # * **Note:** For ECC\_NIST\_EDWARDS25519 KMS keys, the
1914
+ # ED25519\_SHA\_512 signing algorithm requires [ `MessageType:RAW`
1915
+ # ](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType),
1916
+ # while ED25519\_PH\_SHA\_512 requires [ `MessageType:DIGEST`
1917
+ # ](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType).
1918
+ # These message types cannot be used interchangeably.
1919
+ #
1920
+ # ^
1898
1921
  # * Other asymmetric elliptic curve key pairs (signing and verification)
1899
1922
  #
1900
1923
  # * `ECC_SECG_P256K1` (secp256k1), commonly used for cryptocurrencies.
@@ -2410,7 +2433,7 @@ module Aws::KMS
2410
2433
  # description: "DescriptionType",
2411
2434
  # key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT, GENERATE_VERIFY_MAC, KEY_AGREEMENT
2412
2435
  # customer_master_key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2
2413
- # key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2, ML_DSA_44, ML_DSA_65, ML_DSA_87
2436
+ # key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2, ML_DSA_44, ML_DSA_65, ML_DSA_87, ECC_NIST_EDWARDS25519
2414
2437
  # origin: "AWS_KMS", # accepts AWS_KMS, EXTERNAL, AWS_CLOUDHSM, EXTERNAL_KEY_STORE
2415
2438
  # custom_key_store_id: "CustomKeyStoreIdType",
2416
2439
  # bypass_policy_lockout_safety_check: false,
@@ -2442,11 +2465,11 @@ module Aws::KMS
2442
2465
  # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
2443
2466
  # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
2444
2467
  # resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
2445
- # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87"
2468
+ # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
2446
2469
  # resp.key_metadata.encryption_algorithms #=> Array
2447
2470
  # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
2448
2471
  # resp.key_metadata.signing_algorithms #=> Array
2449
- # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256"
2472
+ # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
2450
2473
  # resp.key_metadata.key_agreement_algorithms #=> Array
2451
2474
  # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
2452
2475
  # resp.key_metadata.multi_region #=> Boolean
@@ -2520,17 +2543,17 @@ module Aws::KMS
2520
2543
  # keys or particular trusted accounts. For details, see [Best practices
2521
2544
  # for IAM policies][4] in the *Key Management Service Developer Guide*.
2522
2545
  #
2523
- # `Decrypt` also supports [Amazon Web Services Nitro Enclaves][5], which
2524
- # provide an isolated compute environment in Amazon EC2. To call
2525
- # `Decrypt` for a Nitro enclave, use the [Amazon Web Services Nitro
2526
- # Enclaves SDK][6] or any Amazon Web Services SDK. Use the `Recipient`
2527
- # parameter to provide the attestation document for the enclave. Instead
2528
- # of the plaintext data, the response includes the plaintext data
2529
- # encrypted with the public key from the attestation document
2530
- # (`CiphertextForRecipient`). For information about the interaction
2531
- # between KMS and Amazon Web Services Nitro Enclaves, see [How Amazon
2532
- # Web Services Nitro Enclaves uses KMS][7] in the *Key Management
2533
- # Service Developer Guide*.
2546
+ # `Decrypt` also supports [Amazon Web Services Nitro Enclaves][5] and
2547
+ # NitroTPM, which provide attested environments in Amazon EC2. To call
2548
+ # `Decrypt` for a Nitro enclave or NitroTPM, use the [Amazon Web
2549
+ # Services Nitro Enclaves SDK][6] or any Amazon Web Services SDK. Use
2550
+ # the `Recipient` parameter to provide the attestation document for the
2551
+ # attested environment. Instead of the plaintext data, the response
2552
+ # includes the plaintext data encrypted with the public key from the
2553
+ # attestation document (`CiphertextForRecipient`). For information about
2554
+ # the interaction between KMS and Amazon Web Services Nitro Enclaves or
2555
+ # Amazon Web Services NitroTPM, see [Cryptographic attestation support
2556
+ # in KMS][7] in the *Key Management Service Developer Guide*.
2534
2557
  #
2535
2558
  # The KMS key that you use for this operation must be in a compatible
2536
2559
  # key state. For details, see [Key states of KMS keys][8] in the *Key
@@ -2563,7 +2586,7 @@ module Aws::KMS
2563
2586
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices
2564
2587
  # [5]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
2565
2588
  # [6]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2566
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2589
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2567
2590
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2568
2591
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2569
2592
  # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
@@ -2653,29 +2676,32 @@ module Aws::KMS
2653
2676
  #
2654
2677
  # @option params [Types::RecipientInfo] :recipient
2655
2678
  # A signed [attestation document][1] from an Amazon Web Services Nitro
2656
- # enclave and the encryption algorithm to use with the enclave's public
2657
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
2679
+ # enclave or NitroTPM, and the encryption algorithm to use with the
2680
+ # public key in the attestation document. The only valid encryption
2681
+ # algorithm is `RSAES_OAEP_SHA_256`.
2658
2682
  #
2659
- # This parameter only supports attestation documents for Amazon Web
2660
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2661
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2683
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
2684
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
2685
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
2686
+ # Services NitroTPM.
2662
2687
  #
2663
2688
  # When you use this parameter, instead of returning the plaintext data,
2664
2689
  # KMS encrypts the plaintext data with the public key in the attestation
2665
2690
  # document, and returns the resulting ciphertext in the
2666
2691
  # `CiphertextForRecipient` field in the response. This ciphertext can be
2667
- # decrypted only with the private key in the enclave. The `Plaintext`
2668
- # field in the response is null or empty.
2692
+ # decrypted only with the private key in the attested environment. The
2693
+ # `Plaintext` field in the response is null or empty.
2669
2694
  #
2670
2695
  # For information about the interaction between KMS and Amazon Web
2671
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2672
- # uses KMS][3] in the *Key Management Service Developer Guide*.
2696
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
2697
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
2698
+ # Service Developer Guide*.
2673
2699
  #
2674
2700
  #
2675
2701
  #
2676
2702
  # [1]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-concepts.html#term-attestdoc
2677
2703
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2678
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2704
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2679
2705
  #
2680
2706
  # @option params [Boolean] :dry_run
2681
2707
  # Checks if your request will succeed. `DryRun` is an optional
@@ -2733,11 +2759,11 @@ module Aws::KMS
2733
2759
  # plaintext: "<binary data>", # The decrypted (plaintext) data.
2734
2760
  # }
2735
2761
  #
2736
- # @example Example: To decrypt data for a Nitro enclave
2762
+ # @example Example: To decrypt data for a Nitro enclave or NitroTPM
2737
2763
  #
2738
2764
  # # The following Decrypt example includes the Recipient parameter with a signed attestation document from an AWS Nitro
2739
- # # enclave. Instead of returning the decrypted data in plaintext (Plaintext), the operation returns the decrypted data
2740
- # # encrypted by the public key from the attestation document (CiphertextForRecipient).
2765
+ # # enclave or NitroTPM. Instead of returning the decrypted data in plaintext (Plaintext), the operation returns the
2766
+ # # decrypted data encrypted by the public key from the attestation document (CiphertextForRecipient).
2741
2767
  #
2742
2768
  # resp = client.decrypt({
2743
2769
  # ciphertext_blob: "<binary data>", # The encrypted data. This ciphertext was encrypted with the KMS key
@@ -2745,7 +2771,7 @@ module Aws::KMS
2745
2771
  # recipient: {
2746
2772
  # attestation_document: "<attestation document>",
2747
2773
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
2748
- # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document
2774
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document
2749
2775
  # })
2750
2776
  #
2751
2777
  # resp.to_h outputs the following:
@@ -2980,6 +3006,16 @@ module Aws::KMS
2980
3006
  # operation does not change the KMS key's state. Otherwise, it changes
2981
3007
  # the KMS key's state to `PendingImport`.
2982
3008
  #
3009
+ # **Considerations for multi-Region symmetric encryption keys**
3010
+ #
3011
+ # * When you delete the key material of a primary Region key that is in
3012
+ # `PENDING_ROTATION` or
3013
+ # `PENDING_MULTI_REGION_IMPORT_AND_ROTATION`state, you'll also be
3014
+ # deleting the key materials for the replica Region keys.
3015
+ #
3016
+ # * If you delete any key material of a replica Region key, the primary
3017
+ # Region key and other replica Region keys remain unchanged.
3018
+ #
2983
3019
  # The KMS key that you use for this operation must be in a compatible
2984
3020
  # key state. For details, see [Key states of KMS keys][2] in the *Key
2985
3021
  # Management Service Developer Guide*.
@@ -3071,8 +3107,8 @@ module Aws::KMS
3071
3107
 
3072
3108
  # Derives a shared secret using a key agreement algorithm.
3073
3109
  #
3074
- # <note markdown="1"> You must use an asymmetric NIST-recommended elliptic curve (ECC) or
3075
- # SM2 (China Regions only) KMS key pair with a `KeyUsage` value of
3110
+ # <note markdown="1"> You must use an asymmetric NIST-standard elliptic curve (ECC) or SM2
3111
+ # (China Regions only) KMS key pair with a `KeyUsage` value of
3076
3112
  # `KEY_AGREEMENT` to call DeriveSharedSecret.
3077
3113
  #
3078
3114
  # </note>
@@ -3093,15 +3129,15 @@ module Aws::KMS
3093
3129
  # 1. **Alice** calls CreateKey to create an asymmetric KMS key pair
3094
3130
  # with a `KeyUsage` value of `KEY_AGREEMENT`.
3095
3131
  #
3096
- # The asymmetric KMS key must use a NIST-recommended elliptic curve
3132
+ # The asymmetric KMS key must use a NIST-standard elliptic curve
3097
3133
  # (ECC) or SM2 (China Regions only) key spec.
3098
3134
  #
3099
3135
  # 2. **Bob** creates an elliptic curve key pair.
3100
3136
  #
3101
3137
  # Bob can call CreateKey to create an asymmetric KMS key pair or
3102
3138
  # generate a key pair outside of KMS. Bob's key pair must use the
3103
- # same NIST-recommended elliptic curve (ECC) or SM2 (China Regions
3104
- # ony) curve as Alice.
3139
+ # same NIST-standard elliptic curve (ECC) or SM2 (China Regions ony)
3140
+ # curve as Alice.
3105
3141
  #
3106
3142
  # 3. Alice and Bob **exchange their public keys** through an insecure
3107
3143
  # communication channel (like the internet).
@@ -3128,12 +3164,12 @@ module Aws::KMS
3128
3164
  # his private key and Alice's public key.
3129
3165
  #
3130
3166
  # To derive a shared secret you must provide a key agreement algorithm,
3131
- # the private key of the caller's asymmetric NIST-recommended elliptic
3167
+ # the private key of the caller's asymmetric NIST-standard elliptic
3132
3168
  # curve or SM2 (China Regions only) KMS key pair, and the public key
3133
- # from your peer's NIST-recommended elliptic curve or SM2 (China
3134
- # Regions only) key pair. The public key can be from another asymmetric
3135
- # KMS key pair or from a key pair generated outside of KMS, but both key
3136
- # pairs must be on the same elliptic curve.
3169
+ # from your peer's NIST-standard elliptic curve or SM2 (China Regions
3170
+ # only) key pair. The public key can be from another asymmetric KMS key
3171
+ # pair or from a key pair generated outside of KMS, but both key pairs
3172
+ # must be on the same elliptic curve.
3137
3173
  #
3138
3174
  # The KMS key that you use for this operation must be in a compatible
3139
3175
  # key state. For details, see [Key states of KMS keys][3] in the *Key
@@ -3165,9 +3201,9 @@ module Aws::KMS
3165
3201
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
3166
3202
  #
3167
3203
  # @option params [required, String] :key_id
3168
- # Identifies an asymmetric NIST-recommended ECC or SM2 (China Regions
3169
- # only) KMS key. KMS uses the private key in the specified key pair to
3170
- # derive the shared secret. The key usage of the KMS key must be
3204
+ # Identifies an asymmetric NIST-standard ECC or SM2 (China Regions only)
3205
+ # KMS key. KMS uses the private key in the specified key pair to derive
3206
+ # the shared secret. The key usage of the KMS key must be
3171
3207
  # `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS key, use the
3172
3208
  # DescribeKey operation.
3173
3209
  #
@@ -3195,8 +3231,8 @@ module Aws::KMS
3195
3231
  # secret. The only valid value is `ECDH`.
3196
3232
  #
3197
3233
  # @option params [required, String, StringIO, File] :public_key
3198
- # Specifies the public key in your peer's NIST-recommended elliptic
3199
- # curve (ECC) or SM2 (China Regions only) key pair.
3234
+ # Specifies the public key in your peer's NIST-standard elliptic curve
3235
+ # (ECC) or SM2 (China Regions only) key pair.
3200
3236
  #
3201
3237
  # The public key must be a DER-encoded X.509 public key, also known as
3202
3238
  # `SubjectPublicKeyInfo` (SPKI), as defined in [RFC 5280][1].
@@ -3245,35 +3281,40 @@ module Aws::KMS
3245
3281
  #
3246
3282
  # @option params [Types::RecipientInfo] :recipient
3247
3283
  # A signed [attestation document][1] from an Amazon Web Services Nitro
3248
- # enclave and the encryption algorithm to use with the enclave's public
3249
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
3284
+ # enclave or NitroTPM, and the encryption algorithm to use with the
3285
+ # public key in the attestation document. The only valid encryption
3286
+ # algorithm is `RSAES_OAEP_SHA_256`.
3250
3287
  #
3251
3288
  # This parameter only supports attestation documents for Amazon Web
3252
- # Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon Web
3253
- # Services Nitro Enclaves, use the [Amazon Web Services Nitro Enclaves
3254
- # SDK][2] to generate the attestation document and then use the
3255
- # Recipient parameter from any Amazon Web Services SDK to provide the
3256
- # attestation document for the enclave.
3289
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
3290
+ # DeriveSharedSecret generate an attestation document use either [Amazon
3291
+ # Web Services Nitro Enclaves SDK][2] for an Amazon Web Services Nitro
3292
+ # Enclaves or [Amazon Web Services NitroTPM tools][3] for Amazon Web
3293
+ # Services NitroTPM. Then use the Recipient parameter from any Amazon
3294
+ # Web Services SDK to provide the attestation document for the attested
3295
+ # environment.
3257
3296
  #
3258
3297
  # When you use this parameter, instead of returning a plaintext copy of
3259
3298
  # the shared secret, KMS encrypts the plaintext shared secret under the
3260
3299
  # public key in the attestation document, and returns the resulting
3261
3300
  # ciphertext in the `CiphertextForRecipient` field in the response. This
3262
- # ciphertext can be decrypted only with the private key in the enclave.
3263
- # The `CiphertextBlob` field in the response contains the encrypted
3264
- # shared secret derived from the KMS key specified by the `KeyId`
3265
- # parameter and public key specified by the `PublicKey` parameter. The
3266
- # `SharedSecret` field in the response is null or empty.
3301
+ # ciphertext can be decrypted only with the private key in the attested
3302
+ # environment. The `CiphertextBlob` field in the response contains the
3303
+ # encrypted shared secret derived from the KMS key specified by the
3304
+ # `KeyId` parameter and public key specified by the `PublicKey`
3305
+ # parameter. The `SharedSecret` field in the response is null or empty.
3267
3306
  #
3268
3307
  # For information about the interaction between KMS and Amazon Web
3269
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
3270
- # uses KMS][3] in the *Key Management Service Developer Guide*.
3308
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
3309
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
3310
+ # Service Developer Guide*.
3271
3311
  #
3272
3312
  #
3273
3313
  #
3274
3314
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
3275
3315
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
3276
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3316
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
3317
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
3277
3318
  #
3278
3319
  # @return [Types::DeriveSharedSecretResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3279
3320
  #
@@ -3302,6 +3343,31 @@ module Aws::KMS
3302
3343
  # shared_secret: "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", # The raw secret derived from the specified key agreement algorithm, private key in the asymmetric KMS key, and your peer's public key.
3303
3344
  # }
3304
3345
  #
3346
+ # @example Example: To derive a shared secret for a Nitro enclave or NitroTPM
3347
+ #
3348
+ # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave or
3349
+ # # NitroTPM. Instead of returning a plaintext shared secret, DeriveSharedSecret returns the shared secret encrypted by the
3350
+ # # public key from the attestation document.
3351
+ #
3352
+ # resp = client.derive_shared_secret({
3353
+ # key_agreement_algorithm: "ECDH", # The key agreement algorithm used to derive the shared secret. The only valid value is ECDH.
3354
+ # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key identifier for an asymmetric KMS key pair. The private key in the specified key pair is used to derive the shared secret.
3355
+ # public_key: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag", # The public key in your peer's asymmetric key pair.
3356
+ # recipient: {
3357
+ # attestation_document: "<attestation document>",
3358
+ # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
3359
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document
3360
+ # })
3361
+ #
3362
+ # resp.to_h outputs the following:
3363
+ # {
3364
+ # ciphertext_for_recipient: "<binary data>", # The shared secret encrypted by the public key from the attestation document
3365
+ # key_agreement_algorithm: "ECDH", # The key agreement algorithm used to derive the shared secret.
3366
+ # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The asymmetric KMS key pair used to derive the shared secret.
3367
+ # key_origin: "AWS_KMS", # The source of the key material for the specified KMS key.
3368
+ # shared_secret: "", # This field is null or empty
3369
+ # }
3370
+ #
3305
3371
  # @example Request syntax with placeholder values
3306
3372
  #
3307
3373
  # resp = client.derive_shared_secret({
@@ -3556,6 +3622,7 @@ module Aws::KMS
3556
3622
  # resp.custom_key_stores[0].xks_proxy_configuration.uri_endpoint #=> String
3557
3623
  # resp.custom_key_stores[0].xks_proxy_configuration.uri_path #=> String
3558
3624
  # resp.custom_key_stores[0].xks_proxy_configuration.vpc_endpoint_service_name #=> String
3625
+ # resp.custom_key_stores[0].xks_proxy_configuration.vpc_endpoint_service_owner #=> String
3559
3626
  # resp.next_marker #=> String
3560
3627
  # resp.truncated #=> Boolean
3561
3628
  #
@@ -3929,11 +3996,11 @@ module Aws::KMS
3929
3996
  # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
3930
3997
  # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
3931
3998
  # resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
3932
- # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87"
3999
+ # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
3933
4000
  # resp.key_metadata.encryption_algorithms #=> Array
3934
4001
  # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
3935
4002
  # resp.key_metadata.signing_algorithms #=> Array
3936
- # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256"
4003
+ # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
3937
4004
  # resp.key_metadata.key_agreement_algorithms #=> Array
3938
4005
  # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
3939
4006
  # resp.key_metadata.multi_region #=> Boolean
@@ -4740,16 +4807,17 @@ module Aws::KMS
4740
4807
  # `GenerateDataKey` also supports [Amazon Web Services Nitro
4741
4808
  # Enclaves][2], which provide an isolated compute environment in Amazon
4742
4809
  # EC2. To call `GenerateDataKey` for an Amazon Web Services Nitro
4743
- # enclave, use the [Amazon Web Services Nitro Enclaves SDK][3] or any
4744
- # Amazon Web Services SDK. Use the `Recipient` parameter to provide the
4745
- # attestation document for the enclave. `GenerateDataKey` returns a copy
4746
- # of the data key encrypted under the specified KMS key, as usual. But
4747
- # instead of a plaintext copy of the data key, the response includes a
4748
- # copy of the data key encrypted under the public key from the
4749
- # attestation document (`CiphertextForRecipient`). For information about
4750
- # the interaction between KMS and Amazon Web Services Nitro Enclaves,
4751
- # see [How Amazon Web Services Nitro Enclaves uses KMS][4] in the *Key
4752
- # Management Service Developer Guide*..
4810
+ # enclave or NitroTPM, use the [Amazon Web Services Nitro Enclaves
4811
+ # SDK][3] or any Amazon Web Services SDK. Use the `Recipient` parameter
4812
+ # to provide the attestation document for the attested environment.
4813
+ # `GenerateDataKey` returns a copy of the data key encrypted under the
4814
+ # specified KMS key, as usual. But instead of a plaintext copy of the
4815
+ # data key, the response includes a copy of the data key encrypted under
4816
+ # the public key from the attestation document
4817
+ # (`CiphertextForRecipient`). For information about the interaction
4818
+ # between KMS and Amazon Web Services Nitro Enclaves or Amazon Web
4819
+ # Services NitroTPM, see [Cryptographic attestation support in KMS][4]
4820
+ # in the *Key Management Service Developer Guide*.
4753
4821
  #
4754
4822
  # The KMS key that you use for this operation must be in a compatible
4755
4823
  # key state. For details, see [Key states of KMS keys][5] in the *Key
@@ -4808,7 +4876,7 @@ module Aws::KMS
4808
4876
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4809
4877
  # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
4810
4878
  # [3]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
4811
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
4879
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
4812
4880
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4813
4881
  # [6]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
4814
4882
  # [7]: https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/
@@ -4896,12 +4964,14 @@ module Aws::KMS
4896
4964
  #
4897
4965
  # @option params [Types::RecipientInfo] :recipient
4898
4966
  # A signed [attestation document][1] from an Amazon Web Services Nitro
4899
- # enclave and the encryption algorithm to use with the enclave's public
4900
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
4967
+ # enclave or NitroTPM, and the encryption algorithm to use with the
4968
+ # public key in the attestation document. The only valid encryption
4969
+ # algorithm is `RSAES_OAEP_SHA_256`.
4901
4970
  #
4902
- # This parameter only supports attestation documents for Amazon Web
4903
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
4904
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
4971
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
4972
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
4973
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
4974
+ # Services NitroTPM.
4905
4975
  #
4906
4976
  # When you use this parameter, instead of returning the plaintext data
4907
4977
  # key, KMS encrypts the plaintext data key under the public key in the
@@ -4913,14 +4983,15 @@ module Aws::KMS
4913
4983
  # `Plaintext` field in the response is null or empty.
4914
4984
  #
4915
4985
  # For information about the interaction between KMS and Amazon Web
4916
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
4917
- # uses KMS][3] in the *Key Management Service Developer Guide*.
4986
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
4987
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
4988
+ # Service Developer Guide*.
4918
4989
  #
4919
4990
  #
4920
4991
  #
4921
4992
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
4922
4993
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
4923
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
4994
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
4924
4995
  #
4925
4996
  # @option params [Boolean] :dry_run
4926
4997
  # Checks if your request will succeed. `DryRun` is an optional
@@ -4960,10 +5031,10 @@ module Aws::KMS
4960
5031
  # plaintext: "<binary data>", # The unencrypted (plaintext) data key.
4961
5032
  # }
4962
5033
  #
4963
- # @example Example: To generate a data key pair for a Nitro enclave
5034
+ # @example Example: To generate a data key for a Nitro enclave or NitroTPM
4964
5035
  #
4965
- # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
4966
- # # Instead of returning a copy of the data key encrypted by the KMS key and a plaintext copy of the data key,
5036
+ # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave or
5037
+ # # NitroTPM. Instead of returning a copy of the data key encrypted by the KMS key and a plaintext copy of the data key,
4967
5038
  # # GenerateDataKey returns one copy of the data key encrypted by the KMS key (CiphertextBlob) and one copy of the data key
4968
5039
  # # encrypted by the public key from the attestation document (CiphertextForRecipient). The operation doesn't return a
4969
5040
  # # plaintext data key.
@@ -4974,7 +5045,7 @@ module Aws::KMS
4974
5045
  # recipient: {
4975
5046
  # attestation_document: "<attestation document>",
4976
5047
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
4977
- # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document
5048
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document
4978
5049
  # })
4979
5050
  #
4980
5051
  # resp.to_h outputs the following:
@@ -5065,17 +5136,18 @@ module Aws::KMS
5065
5136
  # `GenerateDataKeyPair` also supports [Amazon Web Services Nitro
5066
5137
  # Enclaves][3], which provide an isolated compute environment in Amazon
5067
5138
  # EC2. To call `GenerateDataKeyPair` for an Amazon Web Services Nitro
5068
- # enclave, use the [Amazon Web Services Nitro Enclaves SDK][4] or any
5069
- # Amazon Web Services SDK. Use the `Recipient` parameter to provide the
5070
- # attestation document for the enclave. `GenerateDataKeyPair` returns
5071
- # the public data key and a copy of the private data key encrypted under
5072
- # the specified KMS key, as usual. But instead of a plaintext copy of
5073
- # the private data key (`PrivateKeyPlaintext`), the response includes a
5074
- # copy of the private data key encrypted under the public key from the
5075
- # attestation document (`CiphertextForRecipient`). For information about
5076
- # the interaction between KMS and Amazon Web Services Nitro Enclaves,
5077
- # see [How Amazon Web Services Nitro Enclaves uses KMS][5] in the *Key
5078
- # Management Service Developer Guide*..
5139
+ # enclave or NitroTPM, use the [Amazon Web Services Nitro Enclaves
5140
+ # SDK][4] or any Amazon Web Services SDK. Use the `Recipient` parameter
5141
+ # to provide the attestation document for the attested environment.
5142
+ # `GenerateDataKeyPair` returns the public data key and a copy of the
5143
+ # private data key encrypted under the specified KMS key, as usual. But
5144
+ # instead of a plaintext copy of the private data key
5145
+ # (`PrivateKeyPlaintext`), the response includes a copy of the private
5146
+ # data key encrypted under the public key from the attestation document
5147
+ # (`CiphertextForRecipient`). For information about the interaction
5148
+ # between KMS and Amazon Web Services Nitro Enclaves or Amazon Web
5149
+ # Services NitroTPM, see [Cryptographic attestation support in KMS][5]
5150
+ # in the *Key Management Service Developer Guide*.
5079
5151
  #
5080
5152
  # You can use an optional encryption context to add additional security
5081
5153
  # to the encryption operation. If you specify an `EncryptionContext`,
@@ -5116,7 +5188,7 @@ module Aws::KMS
5116
5188
  # [2]: https://tools.ietf.org/html/rfc5958
5117
5189
  # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
5118
5190
  # [4]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5119
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5191
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
5120
5192
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
5121
5193
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5122
5194
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
@@ -5195,35 +5267,40 @@ module Aws::KMS
5195
5267
  #
5196
5268
  # @option params [Types::RecipientInfo] :recipient
5197
5269
  # A signed [attestation document][1] from an Amazon Web Services Nitro
5198
- # enclave and the encryption algorithm to use with the enclave's public
5199
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
5270
+ # enclave or NitroTPM, and the encryption algorithm to use with the
5271
+ # public key in the attestation document. The only valid encryption
5272
+ # algorithm is `RSAES_OAEP_SHA_256`.
5200
5273
  #
5201
5274
  # This parameter only supports attestation documents for Amazon Web
5202
- # Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon Web
5203
- # Services Nitro Enclaves, use the [Amazon Web Services Nitro Enclaves
5204
- # SDK][2] to generate the attestation document and then use the
5205
- # Recipient parameter from any Amazon Web Services SDK to provide the
5206
- # attestation document for the enclave.
5275
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
5276
+ # GenerateDataKeyPair generate an attestation document use either
5277
+ # [Amazon Web Services Nitro Enclaves SDK][2] for an Amazon Web Services
5278
+ # Nitro Enclaves or [Amazon Web Services NitroTPM tools][3] for Amazon
5279
+ # Web Services NitroTPM. Then use the Recipient parameter from any
5280
+ # Amazon Web Services SDK to provide the attestation document for the
5281
+ # attested environment.
5207
5282
  #
5208
5283
  # When you use this parameter, instead of returning a plaintext copy of
5209
5284
  # the private data key, KMS encrypts the plaintext private data key
5210
5285
  # under the public key in the attestation document, and returns the
5211
5286
  # resulting ciphertext in the `CiphertextForRecipient` field in the
5212
5287
  # response. This ciphertext can be decrypted only with the private key
5213
- # in the enclave. The `CiphertextBlob` field in the response contains a
5214
- # copy of the private data key encrypted under the KMS key specified by
5215
- # the `KeyId` parameter. The `PrivateKeyPlaintext` field in the response
5216
- # is null or empty.
5288
+ # in the attested environment. The `CiphertextBlob` field in the
5289
+ # response contains a copy of the private data key encrypted under the
5290
+ # KMS key specified by the `KeyId` parameter. The `PrivateKeyPlaintext`
5291
+ # field in the response is null or empty.
5217
5292
  #
5218
5293
  # For information about the interaction between KMS and Amazon Web
5219
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
5220
- # uses KMS][3] in the *Key Management Service Developer Guide*.
5294
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
5295
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
5296
+ # Service Developer Guide*.
5221
5297
  #
5222
5298
  #
5223
5299
  #
5224
5300
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
5225
5301
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5226
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5302
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
5303
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
5227
5304
  #
5228
5305
  # @option params [Boolean] :dry_run
5229
5306
  # Checks if your request will succeed. `DryRun` is an optional
@@ -5267,13 +5344,13 @@ module Aws::KMS
5267
5344
  # public_key: "<binary data>", # The public key (plaintext) of the RSA data key pair.
5268
5345
  # }
5269
5346
  #
5270
- # @example Example: To generate a data key pair for a Nitro enclave
5347
+ # @example Example: To generate a data key pair for a Nitro enclave or NitroTPM
5271
5348
  #
5272
- # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
5273
- # # Instead of returning a plaintext copy of the private data key, GenerateDataKeyPair returns a copy of the private data
5274
- # # key encrypted by the public key from the attestation document (CiphertextForRecipient). It returns the public data key
5275
- # # (PublicKey) and a copy of private data key encrypted under the specified KMS key (PrivateKeyCiphertextBlob), as usual,
5276
- # # but plaintext private data key field (PrivateKeyPlaintext) is null or empty.
5349
+ # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave or
5350
+ # # NitroTPM. Instead of returning a plaintext copy of the private data key, GenerateDataKeyPair returns a copy of the
5351
+ # # private data key encrypted by the public key from the attestation document (CiphertextForRecipient). It returns the
5352
+ # # public data key (PublicKey) and a copy of private data key encrypted under the specified KMS key
5353
+ # # (PrivateKeyCiphertextBlob), as usual, but plaintext private data key field (PrivateKeyPlaintext) is null or empty.
5277
5354
  #
5278
5355
  # resp = client.generate_data_key_pair({
5279
5356
  # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ID of the symmetric encryption KMS key that encrypts the private RSA key in the data key pair.
@@ -5281,7 +5358,7 @@ module Aws::KMS
5281
5358
  # recipient: {
5282
5359
  # attestation_document: "<attestation document>",
5283
5360
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
5284
- # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document.
5361
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document.
5285
5362
  # })
5286
5363
  #
5287
5364
  # resp.to_h outputs the following:
@@ -5302,7 +5379,7 @@ module Aws::KMS
5302
5379
  # "EncryptionContextKey" => "EncryptionContextValue",
5303
5380
  # },
5304
5381
  # key_id: "KeyIdType", # required
5305
- # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2
5382
+ # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2, ECC_NIST_EDWARDS25519
5306
5383
  # grant_tokens: ["GrantTokenType"],
5307
5384
  # recipient: {
5308
5385
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256
@@ -5317,7 +5394,7 @@ module Aws::KMS
5317
5394
  # resp.private_key_plaintext #=> String
5318
5395
  # resp.public_key #=> String
5319
5396
  # resp.key_id #=> String
5320
- # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2"
5397
+ # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2", "ECC_NIST_EDWARDS25519"
5321
5398
  # resp.ciphertext_for_recipient #=> String
5322
5399
  # resp.key_material_id #=> String
5323
5400
  #
@@ -5520,7 +5597,7 @@ module Aws::KMS
5520
5597
  # "EncryptionContextKey" => "EncryptionContextValue",
5521
5598
  # },
5522
5599
  # key_id: "KeyIdType", # required
5523
- # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2
5600
+ # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2, ECC_NIST_EDWARDS25519
5524
5601
  # grant_tokens: ["GrantTokenType"],
5525
5602
  # dry_run: false,
5526
5603
  # })
@@ -5530,7 +5607,7 @@ module Aws::KMS
5530
5607
  # resp.private_key_ciphertext_blob #=> String
5531
5608
  # resp.public_key #=> String
5532
5609
  # resp.key_id #=> String
5533
- # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2"
5610
+ # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2", "ECC_NIST_EDWARDS25519"
5534
5611
  # resp.key_material_id #=> String
5535
5612
  #
5536
5613
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintext AWS API Documentation
@@ -5917,15 +5994,15 @@ module Aws::KMS
5917
5994
  #
5918
5995
  # `GenerateRandom` also supports [Amazon Web Services Nitro
5919
5996
  # Enclaves][1], which provide an isolated compute environment in Amazon
5920
- # EC2. To call `GenerateRandom` for a Nitro enclave, use the [Amazon Web
5921
- # Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK. Use
5922
- # the `Recipient` parameter to provide the attestation document for the
5923
- # enclave. Instead of plaintext bytes, the response includes the
5924
- # plaintext bytes encrypted under the public key from the attestation
5925
- # document (`CiphertextForRecipient`).For information about the
5926
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
5927
- # [How Amazon Web Services Nitro Enclaves uses KMS][3] in the *Key
5928
- # Management Service Developer Guide*.
5997
+ # EC2. To call `GenerateRandom` for a Nitro enclave or NitroTPM, use the
5998
+ # [Amazon Web Services Nitro Enclaves SDK][2] or any Amazon Web Services
5999
+ # SDK. Use the `Recipient` parameter to provide the attestation document
6000
+ # for the attested environment. Instead of plaintext bytes, the response
6001
+ # includes the plaintext bytes encrypted under the public key from the
6002
+ # attestation document (`CiphertextForRecipient`). For information about
6003
+ # the interaction between KMS and Amazon Web Services Nitro Enclaves or
6004
+ # Amazon Web Services NitroTPM, see [Cryptographic attestation support
6005
+ # in KMS][3] in the *Key Management Service Developer Guide*.
5929
6006
  #
5930
6007
  # For more information about entropy and random number generation, see
5931
6008
  # [Entropy and random number generation][4] in the *Key Management
@@ -5943,7 +6020,7 @@ module Aws::KMS
5943
6020
  #
5944
6021
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
5945
6022
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5946
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
6023
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
5947
6024
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#entropy-and-random-numbers
5948
6025
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5949
6026
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
@@ -5962,29 +6039,32 @@ module Aws::KMS
5962
6039
  #
5963
6040
  # @option params [Types::RecipientInfo] :recipient
5964
6041
  # A signed [attestation document][1] from an Amazon Web Services Nitro
5965
- # enclave and the encryption algorithm to use with the enclave's public
5966
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
6042
+ # enclave or NitroTPM, and the encryption algorithm to use with the
6043
+ # public key in the attestation document. The only valid encryption
6044
+ # algorithm is `RSAES_OAEP_SHA_256`.
5967
6045
  #
5968
- # This parameter only supports attestation documents for Amazon Web
5969
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
5970
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
6046
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
6047
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
6048
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
6049
+ # Services NitroTPM.
5971
6050
  #
5972
6051
  # When you use this parameter, instead of returning plaintext bytes, KMS
5973
6052
  # encrypts the plaintext bytes under the public key in the attestation
5974
6053
  # document, and returns the resulting ciphertext in the
5975
6054
  # `CiphertextForRecipient` field in the response. This ciphertext can be
5976
- # decrypted only with the private key in the enclave. The `Plaintext`
5977
- # field in the response is null or empty.
6055
+ # decrypted only with the private key in the attested environment. The
6056
+ # `Plaintext` field in the response is null or empty.
5978
6057
  #
5979
6058
  # For information about the interaction between KMS and Amazon Web
5980
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
5981
- # uses KMS][3] in the *Key Management Service Developer Guide*.
6059
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
6060
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
6061
+ # Service Developer Guide*.
5982
6062
  #
5983
6063
  #
5984
6064
  #
5985
6065
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
5986
6066
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5987
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
6067
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
5988
6068
  #
5989
6069
  # @return [Types::GenerateRandomResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5990
6070
  #
@@ -6005,18 +6085,18 @@ module Aws::KMS
6005
6085
  # plaintext: "<binary data>", # The random data.
6006
6086
  # }
6007
6087
  #
6008
- # @example Example: To generate random data
6088
+ # @example Example: To generate random data for a Nitro enclave or NitroTPM
6009
6089
  #
6010
- # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
6011
- # # Instead of returning a plaintext (unencrypted) byte string, GenerateRandom returns the byte string encrypted by the
6012
- # # public key from the enclave's attestation document.
6090
+ # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave or
6091
+ # # NitroTPM. Instead of returning a plaintext (unencrypted) byte string, GenerateRandom returns the byte string encrypted
6092
+ # # by the public key from the attestation document.
6013
6093
  #
6014
6094
  # resp = client.generate_random({
6015
6095
  # number_of_bytes: 1024, # The length of the random byte string
6016
6096
  # recipient: {
6017
6097
  # attestation_document: "<attestation document>",
6018
6098
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
6019
- # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document
6099
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document
6020
6100
  # })
6021
6101
  #
6022
6102
  # resp.to_h outputs the following:
@@ -6691,12 +6771,12 @@ module Aws::KMS
6691
6771
  # resp.key_id #=> String
6692
6772
  # resp.public_key #=> String
6693
6773
  # resp.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
6694
- # resp.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87"
6774
+ # resp.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
6695
6775
  # resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT"
6696
6776
  # resp.encryption_algorithms #=> Array
6697
6777
  # resp.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
6698
6778
  # resp.signing_algorithms #=> Array
6699
- # resp.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256"
6779
+ # resp.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
6700
6780
  # resp.key_agreement_algorithms #=> Array
6701
6781
  # resp.key_agreement_algorithms[0] #=> String, one of "ECDH"
6702
6782
  #
@@ -6719,10 +6799,28 @@ module Aws::KMS
6719
6799
  # information about importing key material, see [Importing key
6720
6800
  # material][1].
6721
6801
  #
6722
- # For asymmetric, HMAC and multi-Region keys, you cannot change the key
6723
- # material after the initial import. You can import multiple key
6724
- # materials into single-Region, symmetric encryption keys and rotate the
6725
- # key material on demand using `RotateKeyOnDemand`.
6802
+ # For asymmetric and HMAC keys, you cannot change the key material after
6803
+ # the initial import. You can import multiple key materials into
6804
+ # symmetric encryption keys and rotate the key material on demand using
6805
+ # `RotateKeyOnDemand`.
6806
+ #
6807
+ # You can import new key materials into multi-Region symmetric
6808
+ # encryption keys. To do so, you must import the new key material into
6809
+ # the primary Region key. Then you can import the same key materials
6810
+ # into the replica Region keys. You cannot directly import new key
6811
+ # material into the replica Region keys.
6812
+ #
6813
+ # To import new key material for a multi-Region symmetric key, you’ll
6814
+ # need to complete the following:
6815
+ #
6816
+ # 1. Call `ImportKeyMaterial` on the primary Region key with the
6817
+ # `ImportType`set to `NEW_KEY_MATERIAL`.
6818
+ #
6819
+ # 2. Call `ImportKeyMaterial` on the replica Region key with the
6820
+ # `ImportType` set to `EXISTING_KEY_MATERIAL` using the same key
6821
+ # material imported to the primary Region key. You must do this for
6822
+ # every replica Region key before you can perform the
6823
+ # RotateKeyOnDemand operation on the primary Region key.
6726
6824
  #
6727
6825
  # After you import key material, you can [reimport the same key
6728
6826
  # material][2] into that KMS key or, if the key supports on-demand
@@ -6764,10 +6862,10 @@ module Aws::KMS
6764
6862
  #
6765
6863
  # * The key ID or key ARN of the KMS key to associate with the imported
6766
6864
  # key material. Its `Origin` must be `EXTERNAL` and its `KeyState`
6767
- # must be `PendingImport`. You cannot perform this operation on a KMS
6768
- # key in a [custom key store][5], or on a KMS key in a different
6769
- # Amazon Web Services account. To get the `Origin` and `KeyState` of a
6770
- # KMS key, call DescribeKey.
6865
+ # must be `PendingImport` or `Enabled`. You cannot perform this
6866
+ # operation on a KMS key in a [custom key store][5], or on a KMS key
6867
+ # in a different Amazon Web Services account. To get the `Origin` and
6868
+ # `KeyState` of a KMS key, call DescribeKey.
6771
6869
  #
6772
6870
  # * The encrypted key material.
6773
6871
  #
@@ -6787,13 +6885,12 @@ module Aws::KMS
6787
6885
  # Each time you reimport, you can eliminate or reset the expiration
6788
6886
  # time.
6789
6887
  #
6790
- # When this operation is successful, the key state of the KMS key
6791
- # changes from `PendingImport` to `Enabled`, and you can use the KMS key
6792
- # in cryptographic operations. For single-Region, symmetric encryption
6793
- # keys, you will need to import all of the key materials associated with
6794
- # the KMS key to change its state to `Enabled`. Use the
6795
- # `ListKeyRotations` operation to list the ID and import state of each
6796
- # key material associated with a KMS key.
6888
+ # When this operation is successful, the state of the KMS key changes to
6889
+ # `Enabled`, and you can use the KMS key in cryptographic operations.
6890
+ # For symmetric encryption keys, you will need to import all of the key
6891
+ # materials associated with the KMS key to change its state to
6892
+ # `Enabled`. Use the `ListKeyRotations` operation to list the ID and
6893
+ # import state of each key material associated with a KMS key.
6797
6894
  #
6798
6895
  # If this operation fails, use the exception to help determine the
6799
6896
  # problem. If the error is related to the key material, the import
@@ -6921,6 +7018,12 @@ module Aws::KMS
6921
7018
  # material is imported, if this parameter is omitted then the parameter
6922
7019
  # defaults to `EXISTING_KEY_MATERIAL`.
6923
7020
  #
7021
+ # For multi-Region keys, you must first import new key material into the
7022
+ # primary Region key. You should use the `NEW_KEY_MATERIAL` import type
7023
+ # when importing key material into the primary Region key. Then, you can
7024
+ # import the same key material into the replica Region key. The import
7025
+ # type for the replica Region key should be `EXISTING_KEY_MATERIAL`.
7026
+ #
6924
7027
  # @option params [String] :key_material_description
6925
7028
  # Description for the key material being imported. This parameter is
6926
7029
  # optional and only usable with symmetric encryption keys. If you do not
@@ -7617,7 +7720,7 @@ module Aws::KMS
7617
7720
  # resp.rotations[0].key_material_id #=> String
7618
7721
  # resp.rotations[0].key_material_description #=> String
7619
7722
  # resp.rotations[0].import_state #=> String, one of "IMPORTED", "PENDING_IMPORT"
7620
- # resp.rotations[0].key_material_state #=> String, one of "NON_CURRENT", "CURRENT", "PENDING_ROTATION"
7723
+ # resp.rotations[0].key_material_state #=> String, one of "NON_CURRENT", "CURRENT", "PENDING_ROTATION", "PENDING_MULTI_REGION_IMPORT_AND_ROTATION"
7621
7724
  # resp.rotations[0].expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
7622
7725
  # resp.rotations[0].valid_to #=> Time
7623
7726
  # resp.rotations[0].rotation_date #=> Time
@@ -8869,11 +8972,11 @@ module Aws::KMS
8869
8972
  # resp.replica_key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
8870
8973
  # resp.replica_key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
8871
8974
  # resp.replica_key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
8872
- # resp.replica_key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87"
8975
+ # resp.replica_key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
8873
8976
  # resp.replica_key_metadata.encryption_algorithms #=> Array
8874
8977
  # resp.replica_key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
8875
8978
  # resp.replica_key_metadata.signing_algorithms #=> Array
8876
- # resp.replica_key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256"
8979
+ # resp.replica_key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
8877
8980
  # resp.replica_key_metadata.key_agreement_algorithms #=> Array
8878
8981
  # resp.replica_key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
8879
8982
  # resp.replica_key_metadata.multi_region #=> Boolean
@@ -9150,30 +9253,31 @@ module Aws::KMS
9150
9253
  #
9151
9254
  # On-demand key rotation is supported only on symmetric encryption KMS
9152
9255
  # keys. You cannot perform on-demand rotation of [asymmetric KMS
9153
- # keys][3], [HMAC KMS keys][4], multi-Region KMS keys with [imported key
9154
- # material][5], or KMS keys in a [custom key store][6]. When you
9155
- # initiate on-demand key rotation on a symmetric encryption KMS key with
9156
- # imported key material, you must have already imported [new key
9157
- # material][7] and that key material's state should be
9256
+ # keys][3], [HMAC KMS keys][4], or KMS keys in a [custom key store][5].
9257
+ # When you initiate on-demand key rotation on a symmetric encryption KMS
9258
+ # key with imported key material, you must have already imported [new
9259
+ # key material][6] and that key material's state should be
9158
9260
  # `PENDING_ROTATION`. Use the `ListKeyRotations` operation to check the
9159
9261
  # state of all key materials associated with a KMS key. To perform
9160
- # on-demand rotation of a set of related [multi-Region keys][8], invoke
9161
- # the on-demand rotation on the primary key.
9262
+ # on-demand rotation of a set of related [multi-Region keys][7], import
9263
+ # new key material in the primary Region key, import the same key
9264
+ # material in each replica Region key, and invoke the on-demand rotation
9265
+ # on the primary Region key.
9162
9266
  #
9163
9267
  # You cannot initiate on-demand rotation of [Amazon Web Services managed
9164
- # KMS keys][9]. KMS always rotates the key material of Amazon Web
9268
+ # KMS keys][8]. KMS always rotates the key material of Amazon Web
9165
9269
  # Services managed keys every year. Rotation of [Amazon Web Services
9166
- # owned KMS keys][10] is managed by the Amazon Web Services service that
9270
+ # owned KMS keys][9] is managed by the Amazon Web Services service that
9167
9271
  # owns the key.
9168
9272
  #
9169
9273
  # The KMS key that you use for this operation must be in a compatible
9170
- # key state. For details, see [Key states of KMS keys][11] in the *Key
9274
+ # key state. For details, see [Key states of KMS keys][10] in the *Key
9171
9275
  # Management Service Developer Guide*.
9172
9276
  #
9173
9277
  # **Cross-account use**: No. You cannot perform this operation on a KMS
9174
9278
  # key in a different Amazon Web Services account.
9175
9279
  #
9176
- # **Required permissions**: [kms:RotateKeyOnDemand][12] (key policy)
9280
+ # **Required permissions**: [kms:RotateKeyOnDemand][11] (key policy)
9177
9281
  #
9178
9282
  # **Related operations:**
9179
9283
  #
@@ -9188,7 +9292,7 @@ module Aws::KMS
9188
9292
  # * ListKeyRotations
9189
9293
  #
9190
9294
  # **Eventual consistency**: The KMS API follows an eventual consistency
9191
- # model. For more information, see [KMS eventual consistency][13].
9295
+ # model. For more information, see [KMS eventual consistency][12].
9192
9296
  #
9193
9297
  #
9194
9298
  #
@@ -9196,15 +9300,14 @@ module Aws::KMS
9196
9300
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html
9197
9301
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
9198
9302
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
9199
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
9200
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
9201
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html
9202
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
9203
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
9204
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key
9205
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9206
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9207
- # [13]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
9303
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
9304
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html
9305
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
9306
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
9307
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key
9308
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9309
+ # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9310
+ # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
9208
9311
  #
9209
9312
  # @option params [required, String] :key_id
9210
9313
  # Identifies a symmetric encryption KMS key. You cannot perform
@@ -9546,6 +9649,13 @@ module Aws::KMS
9546
9649
  # with an unhashed message, the security of the signing operation can be
9547
9650
  # compromised.
9548
9651
  #
9652
+ # When using ECC\_NIST\_EDWARDS25519 KMS keys:
9653
+ #
9654
+ # * ED25519\_SHA\_512 signing algorithm requires KMS `MessageType:RAW`
9655
+ #
9656
+ # * ED25519\_PH\_SHA\_512 signing algorithm requires KMS
9657
+ # `MessageType:DIGEST`
9658
+ #
9549
9659
  # When the value of `MessageType` is `DIGEST`, the length of the
9550
9660
  # `Message` value must match the length of hashed messages for the
9551
9661
  # specified signing algorithm.
@@ -9665,7 +9775,7 @@ module Aws::KMS
9665
9775
  # message: "data", # required
9666
9776
  # message_type: "RAW", # accepts RAW, DIGEST, EXTERNAL_MU
9667
9777
  # grant_tokens: ["GrantTokenType"],
9668
- # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA, ML_DSA_SHAKE_256
9778
+ # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA, ML_DSA_SHAKE_256, ED25519_SHA_512, ED25519_PH_SHA_512
9669
9779
  # dry_run: false,
9670
9780
  # })
9671
9781
  #
@@ -9673,7 +9783,7 @@ module Aws::KMS
9673
9783
  #
9674
9784
  # resp.key_id #=> String
9675
9785
  # resp.signature #=> String
9676
- # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256"
9786
+ # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
9677
9787
  #
9678
9788
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Sign AWS API Documentation
9679
9789
  #
@@ -10240,6 +10350,15 @@ module Aws::KMS
10240
10350
  #
10241
10351
  # To change this value, the external key store must be disconnected.
10242
10352
  #
10353
+ # @option params [String] :xks_proxy_vpc_endpoint_service_owner
10354
+ # Changes the Amazon Web Services account ID that KMS uses to identify
10355
+ # the Amazon VPC endpoint service for your external key store proxy (XKS
10356
+ # proxy). This parameter is optional. If not specified, the current
10357
+ # Amazon Web Services account ID for the VPC endpoint service will not
10358
+ # be updated.
10359
+ #
10360
+ # To change this value, the external key store must be disconnected.
10361
+ #
10243
10362
  # @option params [Types::XksProxyAuthenticationCredentialType] :xks_proxy_authentication_credential
10244
10363
  # Changes the credentials that KMS uses to sign requests to the external
10245
10364
  # key store proxy (XKS proxy). This parameter is valid only for custom
@@ -10381,6 +10500,7 @@ module Aws::KMS
10381
10500
  # xks_proxy_uri_endpoint: "XksProxyUriEndpointType",
10382
10501
  # xks_proxy_uri_path: "XksProxyUriPathType",
10383
10502
  # xks_proxy_vpc_endpoint_service_name: "XksProxyVpcEndpointServiceNameType",
10503
+ # xks_proxy_vpc_endpoint_service_owner: "AccountIdType",
10384
10504
  # xks_proxy_authentication_credential: {
10385
10505
  # access_key_id: "XksProxyAuthenticationAccessKeyIdType", # required
10386
10506
  # raw_secret_access_key: "XksProxyAuthenticationRawSecretAccessKeyType", # required
@@ -10732,6 +10852,13 @@ module Aws::KMS
10732
10852
  # with an unhashed message, the security of the signing operation can be
10733
10853
  # compromised.
10734
10854
  #
10855
+ # When using ECC\_NIST\_EDWARDS25519 KMS keys:
10856
+ #
10857
+ # * ED25519\_SHA\_512 signing algorithm requires KMS `MessageType:RAW`
10858
+ #
10859
+ # * ED25519\_PH\_SHA\_512 signing algorithm requires KMS
10860
+ # `MessageType:DIGEST`
10861
+ #
10735
10862
  # When the value of `MessageType` is `DIGEST`, the length of the
10736
10863
  # `Message` value must match the length of hashed messages for the
10737
10864
  # specified signing algorithm.
@@ -10852,7 +10979,7 @@ module Aws::KMS
10852
10979
  # message: "data", # required
10853
10980
  # message_type: "RAW", # accepts RAW, DIGEST, EXTERNAL_MU
10854
10981
  # signature: "data", # required
10855
- # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA, ML_DSA_SHAKE_256
10982
+ # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA, ML_DSA_SHAKE_256, ED25519_SHA_512, ED25519_PH_SHA_512
10856
10983
  # grant_tokens: ["GrantTokenType"],
10857
10984
  # dry_run: false,
10858
10985
  # })
@@ -10861,7 +10988,7 @@ module Aws::KMS
10861
10988
  #
10862
10989
  # resp.key_id #=> String
10863
10990
  # resp.signature_valid #=> Boolean
10864
- # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256"
10991
+ # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
10865
10992
  #
10866
10993
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Verify AWS API Documentation
10867
10994
  #
@@ -11030,7 +11157,7 @@ module Aws::KMS
11030
11157
  tracer: tracer
11031
11158
  )
11032
11159
  context[:gem_name] = 'aws-sdk-kms'
11033
- context[:gem_version] = '1.112.0'
11160
+ context[:gem_version] = '1.118.0'
11034
11161
  Seahorse::Client::Request.new(handlers, context)
11035
11162
  end
11036
11163