aws-sdk-kms 1.62.0 → 1.64.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -264,6 +264,10 @@ module Aws::KMS
264
264
  # Specifies the alias name. This value must begin with `alias/`
265
265
  # followed by a name, such as `alias/ExampleAlias`.
266
266
  #
267
+ # Do not include confidential or sensitive information in this field.
268
+ # This field may be displayed in plaintext in CloudTrail logs and
269
+ # other output.
270
+ #
267
271
  # The `AliasName` value must be string of 1-256 characters. It can
268
272
  # contain only alphanumeric characters, forward slashes (/),
269
273
  # underscores (\_), and dashes (-). The alias name cannot begin with
@@ -317,6 +321,10 @@ module Aws::KMS
317
321
  # Specifies a friendly name for the custom key store. The name must be
318
322
  # unique in your Amazon Web Services account and Region. This
319
323
  # parameter is required for all custom key stores.
324
+ #
325
+ # Do not include confidential or sensitive information in this field.
326
+ # This field may be displayed in plaintext in CloudTrail logs and
327
+ # other output.
320
328
  # @return [String]
321
329
  #
322
330
  # @!attribute [rw] cloud_hsm_cluster_id
@@ -566,18 +574,16 @@ module Aws::KMS
566
574
  # @!attribute [rw] grantee_principal
567
575
  # The identity that gets the permissions specified in the grant.
568
576
  #
569
- # To specify the principal, use the [Amazon Resource Name (ARN)][1] of
570
- # an Amazon Web Services principal. Valid Amazon Web Services
571
- # principals include Amazon Web Services accounts (root), IAM users,
572
- # IAM roles, federated users, and assumed role users. For examples of
573
- # the ARN syntax to use for specifying a principal, see [Amazon Web
574
- # Services Identity and Access Management (IAM)][2] in the Example
575
- # ARNs section of the *Amazon Web Services General Reference*.
577
+ # To specify the grantee principal, use the Amazon Resource Name (ARN)
578
+ # of an Amazon Web Services principal. Valid principals include Amazon
579
+ # Web Services accounts, IAM users, IAM roles, federated users, and
580
+ # assumed role users. For help with the ARN syntax for a principal,
581
+ # see [IAM ARNs][1] in the <i> <i>Identity and Access Management User
582
+ # Guide</i> </i>.
576
583
  #
577
584
  #
578
585
  #
579
- # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
580
- # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam
586
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns
581
587
  # @return [String]
582
588
  #
583
589
  # @!attribute [rw] retiring_principal
@@ -585,12 +591,11 @@ module Aws::KMS
585
591
  # to retire the grant.
586
592
  #
587
593
  # To specify the principal, use the [Amazon Resource Name (ARN)][1] of
588
- # an Amazon Web Services principal. Valid Amazon Web Services
589
- # principals include Amazon Web Services accounts (root), IAM users,
590
- # federated users, and assumed role users. For examples of the ARN
591
- # syntax to use for specifying a principal, see [Amazon Web Services
592
- # Identity and Access Management (IAM)][2] in the Example ARNs section
593
- # of the *Amazon Web Services General Reference*.
594
+ # an Amazon Web Services principal. Valid principals include Amazon
595
+ # Web Services accounts, IAM users, IAM roles, federated users, and
596
+ # assumed role users. For help with the ARN syntax for a principal,
597
+ # see [IAM ARNs][2] in the <i> <i>Identity and Access Management User
598
+ # Guide</i> </i>.
594
599
  #
595
600
  # The grant determines the retiring principal. Other principals might
596
601
  # have permission to retire the grant or revoke the grant. For
@@ -600,7 +605,7 @@ module Aws::KMS
600
605
  #
601
606
  #
602
607
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
603
- # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam
608
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns
604
609
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete
605
610
  # @return [String]
606
611
  #
@@ -623,23 +628,19 @@ module Aws::KMS
623
628
  # @!attribute [rw] constraints
624
629
  # Specifies a grant constraint.
625
630
  #
626
- # KMS supports the `EncryptionContextEquals` and
627
- # `EncryptionContextSubset` grant constraints. Each constraint value
628
- # can include up to 8 encryption context pairs. The encryption context
629
- # value in each constraint cannot exceed 384 characters. For
630
- # information about grant constraints, see [Using grant
631
- # constraints][1] in the *Key Management Service Developer Guide*. For
632
- # more information about encryption context, see [Encryption
633
- # context][2] in the <i> <i>Key Management Service Developer Guide</i>
634
- # </i>.
631
+ # Do not include confidential or sensitive information in this field.
632
+ # This field may be displayed in plaintext in CloudTrail logs and
633
+ # other output.
635
634
  #
636
- # The encryption context grant constraints allow the permissions in
637
- # the grant only when the encryption context in the request matches
638
- # (`EncryptionContextEquals`) or includes (`EncryptionContextSubset`)
639
- # the encryption context specified in this structure.
635
+ # KMS supports the `EncryptionContextEquals` and
636
+ # `EncryptionContextSubset` grant constraints, which allow the
637
+ # permissions in the grant only when the encryption context in the
638
+ # request matches (`EncryptionContextEquals`) or includes
639
+ # (`EncryptionContextSubset`) the encryption context specified in the
640
+ # constraint.
640
641
  #
641
642
  # The encryption context grant constraints are supported only on
642
- # [grant operations][3] that include an `EncryptionContext` parameter,
643
+ # [grant operations][1] that include an `EncryptionContext` parameter,
643
644
  # such as cryptographic operations on symmetric encryption KMS keys.
644
645
  # Grants with grant constraints can include the DescribeKey and
645
646
  # RetireGrant operations, but the constraint doesn't apply to these
@@ -650,15 +651,21 @@ module Aws::KMS
650
651
  #
651
652
  # You cannot use an encryption context grant constraint for
652
653
  # cryptographic operations with asymmetric KMS keys or HMAC KMS keys.
653
- # These keys don't support an encryption context.
654
- #
654
+ # Operations with these keys don't support an encryption context.
655
655
  #
656
+ # Each constraint value can include up to 8 encryption context pairs.
657
+ # The encryption context value in each constraint cannot exceed 384
658
+ # characters. For information about grant constraints, see [Using
659
+ # grant constraints][2] in the *Key Management Service Developer
660
+ # Guide*. For more information about encryption context, see
661
+ # [Encryption context][3] in the <i> <i>Key Management Service
662
+ # Developer Guide</i> </i>.
656
663
  #
657
664
  #
658
665
  #
659
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints
660
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
661
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
666
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
667
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints
668
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
662
669
  # @return [Types::GrantConstraints]
663
670
  #
664
671
  # @!attribute [rw] grant_tokens
@@ -679,6 +686,10 @@ module Aws::KMS
679
686
  # A friendly name for the grant. Use this value to prevent the
680
687
  # unintended creation of duplicate grants when retrying this request.
681
688
  #
689
+ # Do not include confidential or sensitive information in this field.
690
+ # This field may be displayed in plaintext in CloudTrail logs and
691
+ # other output.
692
+ #
682
693
  # When this value is absent, all `CreateGrant` requests result in a
683
694
  # new grant with a unique `GrantId` even if all the supplied
684
695
  # parameters are identical. This can result in unintended duplicates
@@ -741,27 +752,25 @@ module Aws::KMS
741
752
  #
742
753
  # If you provide a key policy, it must meet the following criteria:
743
754
  #
744
- # * If you don't set `BypassPolicyLockoutSafetyCheck` to true, the
745
- # key policy must allow the principal that is making the `CreateKey`
746
- # request to make a subsequent PutKeyPolicy request on the KMS key.
747
- # This reduces the risk that the KMS key becomes unmanageable. For
748
- # more information, refer to the scenario in the [Default Key
749
- # Policy][1] section of the <i> <i>Key Management Service Developer
750
- # Guide</i> </i>.
755
+ # * The key policy must allow the calling principal to make a
756
+ # subsequent `PutKeyPolicy` request on the KMS key. This reduces the
757
+ # risk that the KMS key becomes unmanageable. For more information,
758
+ # see [Default key policy][1] in the *Key Management Service
759
+ # Developer Guide*. (To omit this condition, set
760
+ # `BypassPolicyLockoutSafetyCheck` to true.)
751
761
  #
752
762
  # * Each statement in the key policy must contain one or more
753
763
  # principals. The principals in the key policy must exist and be
754
764
  # visible to KMS. When you create a new Amazon Web Services
755
- # principal (for example, an IAM user or role), you might need to
756
- # enforce a delay before including the new principal in a key policy
757
- # because the new principal might not be immediately visible to KMS.
758
- # For more information, see [Changes that I make are not always
759
- # immediately visible][2] in the *Amazon Web Services Identity and
760
- # Access Management User Guide*.
765
+ # principal, you might need to enforce a delay before including the
766
+ # new principal in a key policy because the new principal might not
767
+ # be immediately visible to KMS. For more information, see [Changes
768
+ # that I make are not always immediately visible][2] in the *Amazon
769
+ # Web Services Identity and Access Management User Guide*.
761
770
  #
762
771
  # If you do not provide a key policy, KMS attaches a default key
763
- # policy to the KMS key. For more information, see [Default Key
764
- # Policy][3] in the *Key Management Service Developer Guide*.
772
+ # policy to the KMS key. For more information, see [Default key
773
+ # policy][3] in the *Key Management Service Developer Guide*.
765
774
  #
766
775
  # The key policy size quota is 32 kilobytes (32768 bytes).
767
776
  #
@@ -771,18 +780,20 @@ module Aws::KMS
771
780
  #
772
781
  #
773
782
  #
774
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
783
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
775
784
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
776
785
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
777
786
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
778
787
  # @return [String]
779
788
  #
780
789
  # @!attribute [rw] description
781
- # A description of the KMS key.
790
+ # A description of the KMS key. Use a description that helps you
791
+ # decide whether the KMS key is appropriate for a task. The default
792
+ # value is an empty string (no description).
782
793
  #
783
- # Use a description that helps you decide whether the KMS key is
784
- # appropriate for a task. The default value is an empty string (no
785
- # description).
794
+ # Do not include confidential or sensitive information in this field.
795
+ # This field may be displayed in plaintext in CloudTrail logs and
796
+ # other output.
786
797
  #
787
798
  # To set or change the description after the key is created, use
788
799
  # UpdateKeyDescription.
@@ -957,26 +968,23 @@ module Aws::KMS
957
968
  # @return [String]
958
969
  #
959
970
  # @!attribute [rw] bypass_policy_lockout_safety_check
960
- # A flag to indicate whether to bypass the key policy lockout safety
961
- # check.
971
+ # Skips ("bypasses") the key policy lockout safety check. The
972
+ # default value is false.
962
973
  #
963
974
  # Setting this value to true increases the risk that the KMS key
964
975
  # becomes unmanageable. Do not set this value to true
965
976
  # indiscriminately.
966
977
  #
967
- # For more information, refer to the scenario in the [Default Key
968
- # Policy][1] section in the <i> <i>Key Management Service Developer
969
- # Guide</i> </i>.
970
- #
971
- # Use this parameter only when you include a policy in the request and
972
- # you intend to prevent the principal that is making the request from
973
- # making a subsequent PutKeyPolicy request on the KMS key.
978
+ # For more information, see [Default key policy][1] in the *Key
979
+ # Management Service Developer Guide*.
974
980
  #
975
- # The default value is false.
981
+ # Use this parameter only when you intend to prevent the principal
982
+ # that is making the request from making a subsequent PutKeyPolicy
983
+ # request on the KMS key.
976
984
  #
977
985
  #
978
986
  #
979
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
987
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
980
988
  # @return [Boolean]
981
989
  #
982
990
  # @!attribute [rw] tags
@@ -984,6 +992,10 @@ module Aws::KMS
984
992
  # the KMS key when it is created. To tag an existing KMS key, use the
985
993
  # TagResource operation.
986
994
  #
995
+ # Do not include confidential or sensitive information in this field.
996
+ # This field may be displayed in plaintext in CloudTrail logs and
997
+ # other output.
998
+ #
987
999
  # <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the
988
1000
  # KMS key. For details, see [ABAC for KMS][1] in the *Key Management
989
1001
  # Service Developer Guide*.
@@ -1548,6 +1560,34 @@ module Aws::KMS
1548
1560
  # encryption KMS keys.
1549
1561
  # @return [String]
1550
1562
  #
1563
+ # @!attribute [rw] recipient
1564
+ # A signed [attestation document][1] from an Amazon Web Services Nitro
1565
+ # enclave and the encryption algorithm to use with the enclave's
1566
+ # public key. The only valid encryption algorithm is
1567
+ # `RSAES_OAEP_SHA_256`.
1568
+ #
1569
+ # This parameter only supports attestation documents for Amazon Web
1570
+ # Services Nitro Enclaves. To include this parameter, use the [Amazon
1571
+ # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
1572
+ #
1573
+ # When you use this parameter, instead of returning the plaintext
1574
+ # data, KMS encrypts the plaintext data with the public key in the
1575
+ # attestation document, and returns the resulting ciphertext in the
1576
+ # `CiphertextForRecipient` field in the response. This ciphertext can
1577
+ # be decrypted only with the private key in the enclave. The
1578
+ # `Plaintext` field in the response is null or empty.
1579
+ #
1580
+ # For information about the interaction between KMS and Amazon Web
1581
+ # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
1582
+ # uses KMS][3] in the *Key Management Service Developer Guide*.
1583
+ #
1584
+ #
1585
+ #
1586
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
1587
+ # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
1588
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
1589
+ # @return [Types::RecipientInfo]
1590
+ #
1551
1591
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptRequest AWS API Documentation
1552
1592
  #
1553
1593
  class DecryptRequest < Struct.new(
@@ -1555,7 +1595,8 @@ module Aws::KMS
1555
1595
  :encryption_context,
1556
1596
  :grant_tokens,
1557
1597
  :key_id,
1558
- :encryption_algorithm)
1598
+ :encryption_algorithm,
1599
+ :recipient)
1559
1600
  SENSITIVE = []
1560
1601
  include Aws::Structure
1561
1602
  end
@@ -1573,18 +1614,38 @@ module Aws::KMS
1573
1614
  # Decrypted plaintext data. When you use the HTTP API or the Amazon
1574
1615
  # Web Services CLI, the value is Base64-encoded. Otherwise, it is not
1575
1616
  # Base64-encoded.
1617
+ #
1618
+ # If the response includes the `CiphertextForRecipient` field, the
1619
+ # `Plaintext` field is null or empty.
1576
1620
  # @return [String]
1577
1621
  #
1578
1622
  # @!attribute [rw] encryption_algorithm
1579
1623
  # The encryption algorithm that was used to decrypt the ciphertext.
1580
1624
  # @return [String]
1581
1625
  #
1626
+ # @!attribute [rw] ciphertext_for_recipient
1627
+ # The plaintext data encrypted with the public key in the attestation
1628
+ # document.
1629
+ #
1630
+ # This field is included in the response only when the `Recipient`
1631
+ # parameter in the request includes a valid attestation document from
1632
+ # an Amazon Web Services Nitro enclave. For information about the
1633
+ # interaction between KMS and Amazon Web Services Nitro Enclaves, see
1634
+ # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
1635
+ # Management Service Developer Guide*.
1636
+ #
1637
+ #
1638
+ #
1639
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
1640
+ # @return [String]
1641
+ #
1582
1642
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptResponse AWS API Documentation
1583
1643
  #
1584
1644
  class DecryptResponse < Struct.new(
1585
1645
  :key_id,
1586
1646
  :plaintext,
1587
- :encryption_algorithm)
1647
+ :encryption_algorithm,
1648
+ :ciphertext_for_recipient)
1588
1649
  SENSITIVE = [:plaintext]
1589
1650
  include Aws::Structure
1590
1651
  end
@@ -1979,6 +2040,10 @@ module Aws::KMS
1979
2040
  # asymmetric encryption algorithms and HMAC algorithms that KMS uses
1980
2041
  # do not support an encryption context.
1981
2042
  #
2043
+ # Do not include confidential or sensitive information in this field.
2044
+ # This field may be displayed in plaintext in CloudTrail logs and
2045
+ # other output.
2046
+ #
1982
2047
  # An *encryption context* is a collection of non-secret key-value
1983
2048
  # pairs that represent additional authenticated data. When you use an
1984
2049
  # encryption context to encrypt data, you must specify the same (an
@@ -2085,6 +2150,10 @@ module Aws::KMS
2085
2150
  # Specifies the encryption context that will be used when encrypting
2086
2151
  # the private key in the data key pair.
2087
2152
  #
2153
+ # Do not include confidential or sensitive information in this field.
2154
+ # This field may be displayed in plaintext in CloudTrail logs and
2155
+ # other output.
2156
+ #
2088
2157
  # An *encryption context* is a collection of non-secret key-value
2089
2158
  # pairs that represent additional authenticated data. When you use an
2090
2159
  # encryption context to encrypt data, you must specify the same (an
@@ -2152,13 +2221,45 @@ module Aws::KMS
2152
2221
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2153
2222
  # @return [Array<String>]
2154
2223
  #
2224
+ # @!attribute [rw] recipient
2225
+ # A signed [attestation document][1] from an Amazon Web Services Nitro
2226
+ # enclave and the encryption algorithm to use with the enclave's
2227
+ # public key. The only valid encryption algorithm is
2228
+ # `RSAES_OAEP_SHA_256`.
2229
+ #
2230
+ # This parameter only supports attestation documents for Amazon Web
2231
+ # Services Nitro Enclaves. To include this parameter, use the [Amazon
2232
+ # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2233
+ #
2234
+ # When you use this parameter, instead of returning a plaintext copy
2235
+ # of the private data key, KMS encrypts the plaintext private data key
2236
+ # under the public key in the attestation document, and returns the
2237
+ # resulting ciphertext in the `CiphertextForRecipient` field in the
2238
+ # response. This ciphertext can be decrypted only with the private key
2239
+ # in the enclave. The `CiphertextBlob` field in the response contains
2240
+ # a copy of the private data key encrypted under the KMS key specified
2241
+ # by the `KeyId` parameter. The `PrivateKeyPlaintext` field in the
2242
+ # response is null or empty.
2243
+ #
2244
+ # For information about the interaction between KMS and Amazon Web
2245
+ # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2246
+ # uses KMS][3] in the *Key Management Service Developer Guide*.
2247
+ #
2248
+ #
2249
+ #
2250
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2251
+ # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2252
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2253
+ # @return [Types::RecipientInfo]
2254
+ #
2155
2255
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairRequest AWS API Documentation
2156
2256
  #
2157
2257
  class GenerateDataKeyPairRequest < Struct.new(
2158
2258
  :encryption_context,
2159
2259
  :key_id,
2160
2260
  :key_pair_spec,
2161
- :grant_tokens)
2261
+ :grant_tokens,
2262
+ :recipient)
2162
2263
  SENSITIVE = []
2163
2264
  include Aws::Structure
2164
2265
  end
@@ -2173,6 +2274,9 @@ module Aws::KMS
2173
2274
  # The plaintext copy of the private key. When you use the HTTP API or
2174
2275
  # the Amazon Web Services CLI, the value is Base64-encoded. Otherwise,
2175
2276
  # it is not Base64-encoded.
2277
+ #
2278
+ # If the response includes the `CiphertextForRecipient` field, the
2279
+ # `PrivateKeyPlaintext` field is null or empty.
2176
2280
  # @return [String]
2177
2281
  #
2178
2282
  # @!attribute [rw] public_key
@@ -2194,6 +2298,23 @@ module Aws::KMS
2194
2298
  # The type of data key pair that was generated.
2195
2299
  # @return [String]
2196
2300
  #
2301
+ # @!attribute [rw] ciphertext_for_recipient
2302
+ # The plaintext private data key encrypted with the public key from
2303
+ # the Nitro enclave. This ciphertext can be decrypted only by using a
2304
+ # private key in the Nitro enclave.
2305
+ #
2306
+ # This field is included in the response only when the `Recipient`
2307
+ # parameter in the request includes a valid attestation document from
2308
+ # an Amazon Web Services Nitro enclave. For information about the
2309
+ # interaction between KMS and Amazon Web Services Nitro Enclaves, see
2310
+ # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
2311
+ # Management Service Developer Guide*.
2312
+ #
2313
+ #
2314
+ #
2315
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2316
+ # @return [String]
2317
+ #
2197
2318
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairResponse AWS API Documentation
2198
2319
  #
2199
2320
  class GenerateDataKeyPairResponse < Struct.new(
@@ -2201,7 +2322,8 @@ module Aws::KMS
2201
2322
  :private_key_plaintext,
2202
2323
  :public_key,
2203
2324
  :key_id,
2204
- :key_pair_spec)
2325
+ :key_pair_spec,
2326
+ :ciphertext_for_recipient)
2205
2327
  SENSITIVE = [:private_key_plaintext]
2206
2328
  include Aws::Structure
2207
2329
  end
@@ -2210,6 +2332,10 @@ module Aws::KMS
2210
2332
  # Specifies the encryption context that will be used when encrypting
2211
2333
  # the private key in the data key pair.
2212
2334
  #
2335
+ # Do not include confidential or sensitive information in this field.
2336
+ # This field may be displayed in plaintext in CloudTrail logs and
2337
+ # other output.
2338
+ #
2213
2339
  # An *encryption context* is a collection of non-secret key-value
2214
2340
  # pairs that represent additional authenticated data. When you use an
2215
2341
  # encryption context to encrypt data, you must specify the same (an
@@ -2354,6 +2480,10 @@ module Aws::KMS
2354
2480
  # Specifies the encryption context that will be used when encrypting
2355
2481
  # the data key.
2356
2482
  #
2483
+ # Do not include confidential or sensitive information in this field.
2484
+ # This field may be displayed in plaintext in CloudTrail logs and
2485
+ # other output.
2486
+ #
2357
2487
  # An *encryption context* is a collection of non-secret key-value
2358
2488
  # pairs that represent additional authenticated data. When you use an
2359
2489
  # encryption context to encrypt data, you must specify the same (an
@@ -2404,6 +2534,36 @@ module Aws::KMS
2404
2534
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2405
2535
  # @return [Array<String>]
2406
2536
  #
2537
+ # @!attribute [rw] recipient
2538
+ # A signed [attestation document][1] from an Amazon Web Services Nitro
2539
+ # enclave and the encryption algorithm to use with the enclave's
2540
+ # public key. The only valid encryption algorithm is
2541
+ # `RSAES_OAEP_SHA_256`.
2542
+ #
2543
+ # This parameter only supports attestation documents for Amazon Web
2544
+ # Services Nitro Enclaves. To include this parameter, use the [Amazon
2545
+ # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2546
+ #
2547
+ # When you use this parameter, instead of returning the plaintext data
2548
+ # key, KMS encrypts the plaintext data key under the public key in the
2549
+ # attestation document, and returns the resulting ciphertext in the
2550
+ # `CiphertextForRecipient` field in the response. This ciphertext can
2551
+ # be decrypted only with the private key in the enclave. The
2552
+ # `CiphertextBlob` field in the response contains a copy of the data
2553
+ # key encrypted under the KMS key specified by the `KeyId` parameter.
2554
+ # The `Plaintext` field in the response is null or empty.
2555
+ #
2556
+ # For information about the interaction between KMS and Amazon Web
2557
+ # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2558
+ # uses KMS][3] in the *Key Management Service Developer Guide*.
2559
+ #
2560
+ #
2561
+ #
2562
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2563
+ # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2564
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2565
+ # @return [Types::RecipientInfo]
2566
+ #
2407
2567
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyRequest AWS API Documentation
2408
2568
  #
2409
2569
  class GenerateDataKeyRequest < Struct.new(
@@ -2411,7 +2571,8 @@ module Aws::KMS
2411
2571
  :encryption_context,
2412
2572
  :number_of_bytes,
2413
2573
  :key_spec,
2414
- :grant_tokens)
2574
+ :grant_tokens,
2575
+ :recipient)
2415
2576
  SENSITIVE = []
2416
2577
  include Aws::Structure
2417
2578
  end
@@ -2427,6 +2588,9 @@ module Aws::KMS
2427
2588
  # Services CLI, the value is Base64-encoded. Otherwise, it is not
2428
2589
  # Base64-encoded. Use this data key to encrypt your data outside of
2429
2590
  # KMS. Then, remove it from memory as soon as possible.
2591
+ #
2592
+ # If the response includes the `CiphertextForRecipient` field, the
2593
+ # `Plaintext` field is null or empty.
2430
2594
  # @return [String]
2431
2595
  #
2432
2596
  # @!attribute [rw] key_id
@@ -2438,12 +2602,30 @@ module Aws::KMS
2438
2602
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
2439
2603
  # @return [String]
2440
2604
  #
2605
+ # @!attribute [rw] ciphertext_for_recipient
2606
+ # The plaintext data key encrypted with the public key from the Nitro
2607
+ # enclave. This ciphertext can be decrypted only by using a private
2608
+ # key in the Nitro enclave.
2609
+ #
2610
+ # This field is included in the response only when the `Recipient`
2611
+ # parameter in the request includes a valid attestation document from
2612
+ # an Amazon Web Services Nitro enclave. For information about the
2613
+ # interaction between KMS and Amazon Web Services Nitro Enclaves, see
2614
+ # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
2615
+ # Management Service Developer Guide*.
2616
+ #
2617
+ #
2618
+ #
2619
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2620
+ # @return [String]
2621
+ #
2441
2622
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyResponse AWS API Documentation
2442
2623
  #
2443
2624
  class GenerateDataKeyResponse < Struct.new(
2444
2625
  :ciphertext_blob,
2445
2626
  :plaintext,
2446
- :key_id)
2627
+ :key_id,
2628
+ :ciphertext_for_recipient)
2447
2629
  SENSITIVE = [:plaintext]
2448
2630
  include Aws::Structure
2449
2631
  end
@@ -2478,6 +2660,10 @@ module Aws::KMS
2478
2660
  # Specifies the encryption context that will be used when encrypting
2479
2661
  # the data key.
2480
2662
  #
2663
+ # Do not include confidential or sensitive information in this field.
2664
+ # This field may be displayed in plaintext in CloudTrail logs and
2665
+ # other output.
2666
+ #
2481
2667
  # An *encryption context* is a collection of non-secret key-value
2482
2668
  # pairs that represent additional authenticated data. When you use an
2483
2669
  # encryption context to encrypt data, you must specify the same (an
@@ -2654,11 +2840,40 @@ module Aws::KMS
2654
2840
  # `UnsupportedOperationException`.
2655
2841
  # @return [String]
2656
2842
  #
2843
+ # @!attribute [rw] recipient
2844
+ # A signed [attestation document][1] from an Amazon Web Services Nitro
2845
+ # enclave and the encryption algorithm to use with the enclave's
2846
+ # public key. The only valid encryption algorithm is
2847
+ # `RSAES_OAEP_SHA_256`.
2848
+ #
2849
+ # This parameter only supports attestation documents for Amazon Web
2850
+ # Services Nitro Enclaves. To include this parameter, use the [Amazon
2851
+ # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2852
+ #
2853
+ # When you use this parameter, instead of returning plaintext bytes,
2854
+ # KMS encrypts the plaintext bytes under the public key in the
2855
+ # attestation document, and returns the resulting ciphertext in the
2856
+ # `CiphertextForRecipient` field in the response. This ciphertext can
2857
+ # be decrypted only with the private key in the enclave. The
2858
+ # `Plaintext` field in the response is null or empty.
2859
+ #
2860
+ # For information about the interaction between KMS and Amazon Web
2861
+ # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2862
+ # uses KMS][3] in the *Key Management Service Developer Guide*.
2863
+ #
2864
+ #
2865
+ #
2866
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2867
+ # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2868
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2869
+ # @return [Types::RecipientInfo]
2870
+ #
2657
2871
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomRequest AWS API Documentation
2658
2872
  #
2659
2873
  class GenerateRandomRequest < Struct.new(
2660
2874
  :number_of_bytes,
2661
- :custom_key_store_id)
2875
+ :custom_key_store_id,
2876
+ :recipient)
2662
2877
  SENSITIVE = []
2663
2878
  include Aws::Structure
2664
2879
  end
@@ -2667,12 +2882,33 @@ module Aws::KMS
2667
2882
  # The random byte string. When you use the HTTP API or the Amazon Web
2668
2883
  # Services CLI, the value is Base64-encoded. Otherwise, it is not
2669
2884
  # Base64-encoded.
2885
+ #
2886
+ # If the response includes the `CiphertextForRecipient` field, the
2887
+ # `Plaintext` field is null or empty.
2888
+ # @return [String]
2889
+ #
2890
+ # @!attribute [rw] ciphertext_for_recipient
2891
+ # The plaintext random bytes encrypted with the public key from the
2892
+ # Nitro enclave. This ciphertext can be decrypted only by using a
2893
+ # private key in the Nitro enclave.
2894
+ #
2895
+ # This field is included in the response only when the `Recipient`
2896
+ # parameter in the request includes a valid attestation document from
2897
+ # an Amazon Web Services Nitro enclave. For information about the
2898
+ # interaction between KMS and Amazon Web Services Nitro Enclaves, see
2899
+ # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
2900
+ # Management Service Developer Guide*.
2901
+ #
2902
+ #
2903
+ #
2904
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2670
2905
  # @return [String]
2671
2906
  #
2672
2907
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomResponse AWS API Documentation
2673
2908
  #
2674
2909
  class GenerateRandomResponse < Struct.new(
2675
- :plaintext)
2910
+ :plaintext,
2911
+ :ciphertext_for_recipient)
2676
2912
  SENSITIVE = [:plaintext]
2677
2913
  include Aws::Structure
2678
2914
  end
@@ -2776,14 +3012,21 @@ module Aws::KMS
2776
3012
  # @return [String]
2777
3013
  #
2778
3014
  # @!attribute [rw] wrapping_algorithm
2779
- # The algorithm you will use to encrypt the key material before
2780
- # importing it with ImportKeyMaterial. For more information, see
2781
- # [Encrypt the Key Material][1] in the *Key Management Service
3015
+ # The algorithm you will use to encrypt the key material before using
3016
+ # the ImportKeyMaterial operation to import it. For more information,
3017
+ # see [Encrypt the key material][1] in the *Key Management Service
2782
3018
  # Developer Guide*.
2783
3019
  #
3020
+ # The `RSAES_PKCS1_V1_5` wrapping algorithm is deprecated. We
3021
+ # recommend that you begin using a different wrapping algorithm
3022
+ # immediately. KMS will end support for `RSAES_PKCS1_V1_5` by October
3023
+ # 1, 2023 pursuant to [cryptographic key management guidance][2] from
3024
+ # the National Institute of Standards and Technology (NIST).
3025
+ #
2784
3026
  #
2785
3027
  #
2786
3028
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-encrypt-key-material.html
3029
+ # [2]: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf
2787
3030
  # @return [String]
2788
3031
  #
2789
3032
  # @!attribute [rw] wrapping_key_spec
@@ -4128,17 +4371,16 @@ module Aws::KMS
4128
4371
  # in your Amazon Web Services account.
4129
4372
  #
4130
4373
  # To specify the retiring principal, use the [Amazon Resource Name
4131
- # (ARN)][1] of an Amazon Web Services principal. Valid Amazon Web
4132
- # Services principals include Amazon Web Services accounts (root), IAM
4133
- # users, federated users, and assumed role users. For examples of the
4134
- # ARN syntax for specifying a principal, see [Amazon Web Services
4135
- # Identity and Access Management (IAM)][2] in the Example ARNs section
4136
- # of the *Amazon Web Services General Reference*.
4374
+ # (ARN)][1] of an Amazon Web Services principal. Valid principals
4375
+ # include Amazon Web Services accounts, IAM users, IAM roles,
4376
+ # federated users, and assumed role users. For help with the ARN
4377
+ # syntax for a principal, see [IAM ARNs][2] in the <i> <i>Identity and
4378
+ # Access Management User Guide</i> </i>.
4137
4379
  #
4138
4380
  #
4139
4381
  #
4140
4382
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
4141
- # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam
4383
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns
4142
4384
  # @return [String]
4143
4385
  #
4144
4386
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListRetirableGrantsRequest AWS API Documentation
@@ -4256,23 +4498,21 @@ module Aws::KMS
4256
4498
  #
4257
4499
  # The key policy must meet the following criteria:
4258
4500
  #
4259
- # * If you don't set `BypassPolicyLockoutSafetyCheck` to true, the
4260
- # key policy must allow the principal that is making the
4261
- # `PutKeyPolicy` request to make a subsequent `PutKeyPolicy` request
4262
- # on the KMS key. This reduces the risk that the KMS key becomes
4263
- # unmanageable. For more information, refer to the scenario in the
4264
- # [Default Key Policy][1] section of the *Key Management Service
4265
- # Developer Guide*.
4501
+ # * The key policy must allow the calling principal to make a
4502
+ # subsequent `PutKeyPolicy` request on the KMS key. This reduces the
4503
+ # risk that the KMS key becomes unmanageable. For more information,
4504
+ # see [Default key policy][1] in the *Key Management Service
4505
+ # Developer Guide*. (To omit this condition, set
4506
+ # `BypassPolicyLockoutSafetyCheck` to true.)
4266
4507
  #
4267
4508
  # * Each statement in the key policy must contain one or more
4268
4509
  # principals. The principals in the key policy must exist and be
4269
4510
  # visible to KMS. When you create a new Amazon Web Services
4270
- # principal (for example, an IAM user or role), you might need to
4271
- # enforce a delay before including the new principal in a key policy
4272
- # because the new principal might not be immediately visible to KMS.
4273
- # For more information, see [Changes that I make are not always
4274
- # immediately visible][2] in the *Amazon Web Services Identity and
4275
- # Access Management User Guide*.
4511
+ # principal, you might need to enforce a delay before including the
4512
+ # new principal in a key policy because the new principal might not
4513
+ # be immediately visible to KMS. For more information, see [Changes
4514
+ # that I make are not always immediately visible][2] in the *Amazon
4515
+ # Web Services Identity and Access Management User Guide*.
4276
4516
  #
4277
4517
  # A key policy document can include only the following characters:
4278
4518
  #
@@ -4293,32 +4533,30 @@ module Aws::KMS
4293
4533
  #
4294
4534
  #
4295
4535
  #
4296
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
4536
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
4297
4537
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
4298
4538
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4299
4539
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
4300
4540
  # @return [String]
4301
4541
  #
4302
4542
  # @!attribute [rw] bypass_policy_lockout_safety_check
4303
- # A flag to indicate whether to bypass the key policy lockout safety
4304
- # check.
4543
+ # Skips ("bypasses") the key policy lockout safety check. The
4544
+ # default value is false.
4305
4545
  #
4306
4546
  # Setting this value to true increases the risk that the KMS key
4307
4547
  # becomes unmanageable. Do not set this value to true
4308
4548
  # indiscriminately.
4309
4549
  #
4310
- # For more information, refer to the scenario in the [Default Key
4311
- # Policy][1] section in the *Key Management Service Developer Guide*.
4550
+ # For more information, see [Default key policy][1] in the *Key
4551
+ # Management Service Developer Guide*.
4312
4552
  #
4313
4553
  # Use this parameter only when you intend to prevent the principal
4314
- # that is making the request from making a subsequent `PutKeyPolicy`
4554
+ # that is making the request from making a subsequent PutKeyPolicy
4315
4555
  # request on the KMS key.
4316
4556
  #
4317
- # The default value is false.
4318
- #
4319
4557
  #
4320
4558
  #
4321
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
4559
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
4322
4560
  # @return [Boolean]
4323
4561
  #
4324
4562
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/PutKeyPolicyRequest AWS API Documentation
@@ -4423,6 +4661,10 @@ module Aws::KMS
4423
4661
  # Specifies that encryption context to use when the reencrypting the
4424
4662
  # data.
4425
4663
  #
4664
+ # Do not include confidential or sensitive information in this field.
4665
+ # This field may be displayed in plaintext in CloudTrail logs and
4666
+ # other output.
4667
+ #
4426
4668
  # A destination encryption context is valid only when the destination
4427
4669
  # KMS key is a symmetric encryption KMS key. The standard ciphertext
4428
4670
  # format for asymmetric KMS keys does not include fields for metadata.
@@ -4537,6 +4779,39 @@ module Aws::KMS
4537
4779
  include Aws::Structure
4538
4780
  end
4539
4781
 
4782
+ # Contains information about the party that receives the response from
4783
+ # the API operation.
4784
+ #
4785
+ # This data type is designed to support Amazon Web Services Nitro
4786
+ # Enclaves, which lets you create an isolated compute environment in
4787
+ # Amazon EC2. For information about the interaction between KMS and
4788
+ # Amazon Web Services Nitro Enclaves, see [How Amazon Web Services Nitro
4789
+ # Enclaves uses KMS][1] in the *Key Management Service Developer Guide*.
4790
+ #
4791
+ #
4792
+ #
4793
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
4794
+ #
4795
+ # @!attribute [rw] key_encryption_algorithm
4796
+ # The encryption algorithm that KMS should use with the public key for
4797
+ # an Amazon Web Services Nitro Enclave to encrypt plaintext values for
4798
+ # the response. The only valid value is `RSAES_OAEP_SHA_256`.
4799
+ # @return [String]
4800
+ #
4801
+ # @!attribute [rw] attestation_document
4802
+ # The attestation document for an Amazon Web Services Nitro Enclave.
4803
+ # This document includes the enclave's public key.
4804
+ # @return [String]
4805
+ #
4806
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RecipientInfo AWS API Documentation
4807
+ #
4808
+ class RecipientInfo < Struct.new(
4809
+ :key_encryption_algorithm,
4810
+ :attestation_document)
4811
+ SENSITIVE = []
4812
+ include Aws::Structure
4813
+ end
4814
+
4540
4815
  # @!attribute [rw] key_id
4541
4816
  # Identifies the multi-Region primary key that is being replicated. To
4542
4817
  # determine whether a KMS key is a multi-Region primary key, use the
@@ -4606,22 +4881,21 @@ module Aws::KMS
4606
4881
  #
4607
4882
  # If you provide a key policy, it must meet the following criteria:
4608
4883
  #
4609
- # * If you don't set `BypassPolicyLockoutSafetyCheck` to true, the
4610
- # key policy must give the caller `kms:PutKeyPolicy` permission on
4611
- # the replica key. This reduces the risk that the KMS key becomes
4612
- # unmanageable. For more information, refer to the scenario in the
4613
- # [Default Key Policy][2] section of the <i> <i>Key Management
4614
- # Service Developer Guide</i> </i>.
4884
+ # * The key policy must allow the calling principal to make a
4885
+ # subsequent `PutKeyPolicy` request on the KMS key. This reduces the
4886
+ # risk that the KMS key becomes unmanageable. For more information,
4887
+ # see [Default key policy][2] in the *Key Management Service
4888
+ # Developer Guide*. (To omit this condition, set
4889
+ # `BypassPolicyLockoutSafetyCheck` to true.)
4615
4890
  #
4616
4891
  # * Each statement in the key policy must contain one or more
4617
4892
  # principals. The principals in the key policy must exist and be
4618
4893
  # visible to KMS. When you create a new Amazon Web Services
4619
- # principal (for example, an IAM user or role), you might need to
4620
- # enforce a delay before including the new principal in a key policy
4621
- # because the new principal might not be immediately visible to KMS.
4622
- # For more information, see [Changes that I make are not always
4623
- # immediately visible][3] in the <i> <i>Identity and Access
4624
- # Management User Guide</i> </i>.
4894
+ # principal, you might need to enforce a delay before including the
4895
+ # new principal in a key policy because the new principal might not
4896
+ # be immediately visible to KMS. For more information, see [Changes
4897
+ # that I make are not always immediately visible][3] in the *Amazon
4898
+ # Web Services Identity and Access Management User Guide*.
4625
4899
  #
4626
4900
  # A key policy document can include only the following characters:
4627
4901
  #
@@ -4643,38 +4917,40 @@ module Aws::KMS
4643
4917
  #
4644
4918
  #
4645
4919
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
4646
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
4920
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
4647
4921
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
4648
4922
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4649
4923
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
4650
4924
  # @return [String]
4651
4925
  #
4652
4926
  # @!attribute [rw] bypass_policy_lockout_safety_check
4653
- # A flag to indicate whether to bypass the key policy lockout safety
4654
- # check.
4927
+ # Skips ("bypasses") the key policy lockout safety check. The
4928
+ # default value is false.
4655
4929
  #
4656
4930
  # Setting this value to true increases the risk that the KMS key
4657
4931
  # becomes unmanageable. Do not set this value to true
4658
4932
  # indiscriminately.
4659
4933
  #
4660
- # For more information, refer to the scenario in the [Default Key
4661
- # Policy][1] section in the *Key Management Service Developer Guide*.
4934
+ # For more information, see [Default key policy][1] in the *Key
4935
+ # Management Service Developer Guide*.
4662
4936
  #
4663
4937
  # Use this parameter only when you intend to prevent the principal
4664
- # that is making the request from making a subsequent `PutKeyPolicy`
4938
+ # that is making the request from making a subsequent PutKeyPolicy
4665
4939
  # request on the KMS key.
4666
4940
  #
4667
- # The default value is false.
4668
4941
  #
4669
4942
  #
4670
- #
4671
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
4943
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
4672
4944
  # @return [Boolean]
4673
4945
  #
4674
4946
  # @!attribute [rw] description
4675
4947
  # A description of the KMS key. The default value is an empty string
4676
4948
  # (no description).
4677
4949
  #
4950
+ # Do not include confidential or sensitive information in this field.
4951
+ # This field may be displayed in plaintext in CloudTrail logs and
4952
+ # other output.
4953
+ #
4678
4954
  # The description is not a shared property of multi-Region keys. You
4679
4955
  # can specify the same description or a different description for each
4680
4956
  # key in a set of related multi-Region keys. KMS does not synchronize
@@ -4686,6 +4962,10 @@ module Aws::KMS
4686
4962
  # tag the KMS key when it is created. To tag an existing KMS key, use
4687
4963
  # the TagResource operation.
4688
4964
  #
4965
+ # Do not include confidential or sensitive information in this field.
4966
+ # This field may be displayed in plaintext in CloudTrail logs and
4967
+ # other output.
4968
+ #
4689
4969
  # <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the
4690
4970
  # KMS key. For details, see [ABAC for KMS][1] in the *Key Management
4691
4971
  # Service Developer Guide*.
@@ -4952,16 +5232,55 @@ module Aws::KMS
4952
5232
  #
4953
5233
  # @!attribute [rw] message
4954
5234
  # Specifies the message or message digest to sign. Messages can be
4955
- # 0-4096 bytes. To sign a larger message, provide the message digest.
5235
+ # 0-4096 bytes. To sign a larger message, provide a message digest.
4956
5236
  #
4957
- # If you provide a message, KMS generates a hash digest of the message
4958
- # and then signs it.
5237
+ # If you provide a message digest, use the `DIGEST` value of
5238
+ # `MessageType` to prevent the digest from being hashed again while
5239
+ # signing.
4959
5240
  # @return [String]
4960
5241
  #
4961
5242
  # @!attribute [rw] message_type
4962
- # Tells KMS whether the value of the `Message` parameter is a message
4963
- # or message digest. The default value, RAW, indicates a message. To
4964
- # indicate a message digest, enter `DIGEST`.
5243
+ # Tells KMS whether the value of the `Message` parameter should be
5244
+ # hashed as part of the signing algorithm. Use `RAW` for unhashed
5245
+ # messages; use `DIGEST` for message digests, which are already
5246
+ # hashed.
5247
+ #
5248
+ # When the value of `MessageType` is `RAW`, KMS uses the standard
5249
+ # signing algorithm, which begins with a hash function. When the value
5250
+ # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
5251
+ #
5252
+ # Use the `DIGEST` value only when the value of the `Message`
5253
+ # parameter is a message digest. If you use the `DIGEST` value with an
5254
+ # unhashed message, the security of the signing operation can be
5255
+ # compromised.
5256
+ #
5257
+ # When the value of `MessageType`is `DIGEST`, the length of the
5258
+ # `Message` value must match the length of hashed messages for the
5259
+ # specified signing algorithm.
5260
+ #
5261
+ # You can submit a message digest and omit the `MessageType` or
5262
+ # specify `RAW` so the digest is hashed again while signing. However,
5263
+ # this can cause verification failures when verifying with a system
5264
+ # that assumes a single hash.
5265
+ #
5266
+ # The hashing algorithm in that `Sign` uses is based on the
5267
+ # `SigningAlgorithm` value.
5268
+ #
5269
+ # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
5270
+ # algorithm.
5271
+ #
5272
+ # * Signing algorithms that end in SHA\_384 use the SHA\_384 hashing
5273
+ # algorithm.
5274
+ #
5275
+ # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
5276
+ # algorithm.
5277
+ #
5278
+ # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
5279
+ # verification with SM2 key pairs][1].
5280
+ #
5281
+ #
5282
+ #
5283
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
4965
5284
  # @return [String]
4966
5285
  #
4967
5286
  # @!attribute [rw] grant_tokens
@@ -4982,7 +5301,9 @@ module Aws::KMS
4982
5301
  # Specifies the signing algorithm to use when signing the message.
4983
5302
  #
4984
5303
  # Choose an algorithm that is compatible with the type and size of the
4985
- # specified asymmetric KMS key.
5304
+ # specified asymmetric KMS key. When signing with RSA key pairs,
5305
+ # RSASSA-PSS algorithms are preferred. We include RSASSA-PKCS1-v1\_5
5306
+ # algorithms for compatibility with existing applications.
4986
5307
  # @return [String]
4987
5308
  #
4988
5309
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/SignRequest AWS API Documentation
@@ -5045,6 +5366,10 @@ module Aws::KMS
5045
5366
  # keys and tag values are both required, but tag values can be empty
5046
5367
  # (null) strings.
5047
5368
  #
5369
+ # Do not include confidential or sensitive information in this field.
5370
+ # This field may be displayed in plaintext in CloudTrail logs and other
5371
+ # output.
5372
+ #
5048
5373
  # For information about the rules that apply to tag keys and tag values,
5049
5374
  # see [User-Defined Tag Restrictions][1] in the *Amazon Web Services
5050
5375
  # Billing and Cost Management User Guide*.
@@ -5100,10 +5425,12 @@ module Aws::KMS
5100
5425
  # @return [String]
5101
5426
  #
5102
5427
  # @!attribute [rw] tags
5103
- # One or more tags.
5428
+ # One or more tags. Each tag consists of a tag key and a tag value.
5429
+ # The tag value can be an empty (null) string.
5104
5430
  #
5105
- # Each tag consists of a tag key and a tag value. The tag value can be
5106
- # an empty (null) string.
5431
+ # Do not include confidential or sensitive information in this field.
5432
+ # This field may be displayed in plaintext in CloudTrail logs and
5433
+ # other output.
5107
5434
  #
5108
5435
  # You cannot have more than one tag on a KMS key with the same tag
5109
5436
  # key. If you specify an existing tag key with a different tag value,
@@ -5167,6 +5494,10 @@ module Aws::KMS
5167
5494
  # begin with `alias/` followed by the alias name, such as
5168
5495
  # `alias/ExampleAlias`. You cannot use `UpdateAlias` to change the
5169
5496
  # alias name.
5497
+ #
5498
+ # Do not include confidential or sensitive information in this field.
5499
+ # This field may be displayed in plaintext in CloudTrail logs and
5500
+ # other output.
5170
5501
  # @return [String]
5171
5502
  #
5172
5503
  # @!attribute [rw] target_key_id
@@ -5220,6 +5551,10 @@ module Aws::KMS
5220
5551
  # you specify. The custom key store name must be unique in the Amazon
5221
5552
  # Web Services account.
5222
5553
  #
5554
+ # Do not include confidential or sensitive information in this field.
5555
+ # This field may be displayed in plaintext in CloudTrail logs and
5556
+ # other output.
5557
+ #
5223
5558
  # To change this value, an CloudHSM key store must be disconnected. An
5224
5559
  # external key store can be connected or disconnected.
5225
5560
  # @return [String]
@@ -5382,6 +5717,10 @@ module Aws::KMS
5382
5717
  #
5383
5718
  # @!attribute [rw] description
5384
5719
  # New description for the KMS key.
5720
+ #
5721
+ # Do not include confidential or sensitive information in this field.
5722
+ # This field may be displayed in plaintext in CloudTrail logs and
5723
+ # other output.
5385
5724
  # @return [String]
5386
5725
  #
5387
5726
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateKeyDescriptionRequest AWS API Documentation
@@ -5548,14 +5887,48 @@ module Aws::KMS
5548
5887
  # @return [String]
5549
5888
  #
5550
5889
  # @!attribute [rw] message_type
5551
- # Tells KMS whether the value of the `Message` parameter is a message
5552
- # or message digest. The default value, RAW, indicates a message. To
5553
- # indicate a message digest, enter `DIGEST`.
5890
+ # Tells KMS whether the value of the `Message` parameter should be
5891
+ # hashed as part of the signing algorithm. Use `RAW` for unhashed
5892
+ # messages; use `DIGEST` for message digests, which are already
5893
+ # hashed.
5894
+ #
5895
+ # When the value of `MessageType` is `RAW`, KMS uses the standard
5896
+ # signing algorithm, which begins with a hash function. When the value
5897
+ # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
5554
5898
  #
5555
5899
  # Use the `DIGEST` value only when the value of the `Message`
5556
- # parameter is a message digest. If you use the `DIGEST` value with a
5557
- # raw message, the security of the verification operation can be
5900
+ # parameter is a message digest. If you use the `DIGEST` value with an
5901
+ # unhashed message, the security of the verification operation can be
5558
5902
  # compromised.
5903
+ #
5904
+ # When the value of `MessageType`is `DIGEST`, the length of the
5905
+ # `Message` value must match the length of hashed messages for the
5906
+ # specified signing algorithm.
5907
+ #
5908
+ # You can submit a message digest and omit the `MessageType` or
5909
+ # specify `RAW` so the digest is hashed again while signing. However,
5910
+ # if the signed message is hashed once while signing, but twice while
5911
+ # verifying, verification fails, even when the message hasn't
5912
+ # changed.
5913
+ #
5914
+ # The hashing algorithm in that `Verify` uses is based on the
5915
+ # `SigningAlgorithm` value.
5916
+ #
5917
+ # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
5918
+ # algorithm.
5919
+ #
5920
+ # * Signing algorithms that end in SHA\_384 use the SHA\_384 hashing
5921
+ # algorithm.
5922
+ #
5923
+ # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
5924
+ # algorithm.
5925
+ #
5926
+ # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
5927
+ # verification with SM2 key pairs][1].
5928
+ #
5929
+ #
5930
+ #
5931
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
5559
5932
  # @return [String]
5560
5933
  #
5561
5934
  # @!attribute [rw] signature