aws-sdk-kms 1.62.0 → 1.64.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.
@@ -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