aws-sdk-kms 1.31.0 → 1.36.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f9fb075e7541f20c076227a864a0116365a75e5fe67cc746c8609170a677773
4
- data.tar.gz: 1be616e07faab45e182b86d1c07bdc23e38bb54e5ebf6714c49c8556083383fd
3
+ metadata.gz: 4cf10aeb5e6e34a2a77a77b1431b7886d0906dbe3a4a70fe0e3a93c8dcbaaa2b
4
+ data.tar.gz: 3fc2165a42629c08b730f694a40abb6a040ec857c6cacdd5f7d6cda050256e15
5
5
  SHA512:
6
- metadata.gz: aedc634868d8da6f72d8cae30afe8b8cebd3784b28a427c08d054fa091c233f28bcc5737ac7ca49646cdbb84f8ab04a275dc4a00b0a6fb3d062fd8d162827a9b
7
- data.tar.gz: 848518cefbc700f6d3b7241e7b28c75e223cbe47f411b51473f35668003fd46f2f77bdae0b148d5d01a7f88be3b07eb7a0e0b672f674a0a6e92a96a40b6f2278
6
+ metadata.gz: 3dd329302083121bd51e9a0af46611bf888b2f947d020167b1df1324795d9894198fdb2d1b04a56bbbef891bc6bb7870327220ec21087787fb9902897b4b34ab
7
+ data.tar.gz: b942fac422db7a8ca0dc8c15ca71dd177ee930d111b4de29928d2fcadb40725a7e38e2083a63fb63dd8b122b956c97b9e3de47b23db3cab7d206345677a04921
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -45,6 +47,6 @@ require_relative 'aws-sdk-kms/customizations'
45
47
  # @service
46
48
  module Aws::KMS
47
49
 
48
- GEM_VERSION = '1.31.0'
50
+ GEM_VERSION = '1.36.0'
49
51
 
50
52
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -24,6 +26,7 @@ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
26
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
27
30
  require 'aws-sdk-core/plugins/signature_v4.rb'
28
31
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
29
32
 
@@ -69,6 +72,7 @@ module Aws::KMS
69
72
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
70
73
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
71
74
  add_plugin(Aws::Plugins::TransferEncoding)
75
+ add_plugin(Aws::Plugins::HttpChecksum)
72
76
  add_plugin(Aws::Plugins::SignatureV4)
73
77
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
74
78
 
@@ -161,7 +165,7 @@ module Aws::KMS
161
165
  # @option options [String] :endpoint
162
166
  # The client endpoint is normally constructed from the `:region`
163
167
  # option. You should only configure an `:endpoint` when connecting
164
- # to test endpoints. This should be a valid HTTP(S) URI.
168
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
165
169
  #
166
170
  # @option options [Integer] :endpoint_cache_max_entries (1000)
167
171
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -176,7 +180,7 @@ module Aws::KMS
176
180
  # requests fetching endpoints information. Defaults to 60 sec.
177
181
  #
178
182
  # @option options [Boolean] :endpoint_discovery (false)
179
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
183
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
180
184
  #
181
185
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
182
186
  # The log formatter.
@@ -460,9 +464,9 @@ module Aws::KMS
460
464
  end
461
465
 
462
466
  # Creates a display name for a customer managed customer master key
463
- # (CMK). You can use an alias to identify a CMK in cryptographic
464
- # operations, such as Encrypt and GenerateDataKey. You can change the
465
- # CMK associated with the alias at any time.
467
+ # (CMK). You can use an alias to identify a CMK in [cryptographic
468
+ # operations][1], such as Encrypt and GenerateDataKey. You can change
469
+ # the CMK associated with the alias at any time.
466
470
  #
467
471
  # Aliases are easier to remember than key IDs. They can also help to
468
472
  # simplify your applications. For example, if you use an alias in your
@@ -486,8 +490,8 @@ module Aws::KMS
486
490
  #
487
491
  # * You can associate an alias with any customer managed CMK in the same
488
492
  # AWS account and Region. However, you do not have permission to
489
- # associate an alias with an [AWS managed CMK][1] or an [AWS owned
490
- # CMK][2].
493
+ # associate an alias with an [AWS managed CMK][2] or an [AWS owned
494
+ # CMK][3].
491
495
  #
492
496
  # * To change the CMK associated with an alias, use the UpdateAlias
493
497
  # operation. The current CMK and the new CMK must be the same type
@@ -499,7 +503,7 @@ module Aws::KMS
499
503
  # `alias/ExampleAlias`. It can contain only alphanumeric characters,
500
504
  # forward slashes (/), underscores (\_), and dashes (-). The alias
501
505
  # name cannot begin with `alias/aws/`. The `alias/aws/` prefix is
502
- # reserved for [AWS managed CMKs][1].
506
+ # reserved for [AWS managed CMKs][2].
503
507
  #
504
508
  # * The alias name must be unique within an AWS Region. However, you can
505
509
  # use the same alias name in multiple Regions of the same AWS account.
@@ -510,12 +514,12 @@ module Aws::KMS
510
514
  # and then create a new alias with the desired name.
511
515
  #
512
516
  # * You can use an alias name or alias ARN to identify a CMK in AWS KMS
513
- # cryptographic operations and in the DescribeKey operation. However,
514
- # you cannot use alias names or alias ARNs in API operations that
515
- # manage CMKs, such as DisableKey or GetKeyPolicy. For information
516
- # about the valid CMK identifiers for each AWS KMS API operation, see
517
- # the descriptions of the `KeyId` parameter in the API operation
518
- # documentation.
517
+ # [cryptographic operations][1] and in the DescribeKey operation.
518
+ # However, you cannot use alias names or alias ARNs in API operations
519
+ # that manage CMKs, such as DisableKey or GetKeyPolicy. For
520
+ # information about the valid CMK identifiers for each AWS KMS API
521
+ # operation, see the descriptions of the `KeyId` parameter in the API
522
+ # operation documentation.
519
523
  #
520
524
  # Because an alias is not a property of a CMK, you can delete and change
521
525
  # the aliases of a CMK without affecting the CMK. Also, aliases do not
@@ -525,13 +529,14 @@ module Aws::KMS
525
529
  #
526
530
  # The CMK that you use for this operation must be in a compatible key
527
531
  # state. For details, see [How Key State Affects Use of a Customer
528
- # Master Key][3] in the *AWS Key Management Service Developer Guide*.
532
+ # Master Key][4] in the *AWS Key Management Service Developer Guide*.
529
533
  #
530
534
  #
531
535
  #
532
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
533
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
534
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
536
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
537
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
538
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
539
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
535
540
  #
536
541
  # @option params [required, String] :alias_name
537
542
  # Specifies the alias name. This value must begin with `alias/` followed
@@ -677,8 +682,8 @@ module Aws::KMS
677
682
  # grant are met. When setting permissions, grants are an alternative to
678
683
  # key policies.
679
684
  #
680
- # To create a grant that allows a cryptographic operation only when the
681
- # request includes a particular [encryption context][1], use the
685
+ # To create a grant that allows a [cryptographic operation][1] only when
686
+ # the request includes a particular [encryption context][2], use the
682
687
  # `Constraints` parameter. For details, see GrantConstraints.
683
688
  #
684
689
  # You can create grants on symmetric and asymmetric CMKs. However, if
@@ -693,9 +698,9 @@ module Aws::KMS
693
698
  #
694
699
  # * Grants for asymmetric CMKs cannot allow operations that are not
695
700
  # supported for asymmetric CMKs, including operations that [generate
696
- # data keys][2] or [data key pairs][3], or operations related to
697
- # [automatic key rotation][4], [imported key material][5], or CMKs in
698
- # [custom key stores][6].
701
+ # data keys][3] or [data key pairs][4], or operations related to
702
+ # [automatic key rotation][5], [imported key material][6], or CMKs in
703
+ # [custom key stores][7].
699
704
  #
700
705
  # * Grants for asymmetric CMKs with a `KeyUsage` of `ENCRYPT_DECRYPT`
701
706
  # cannot allow the Sign or Verify operations. Grants for asymmetric
@@ -707,29 +712,30 @@ module Aws::KMS
707
712
  # asymmetric CMKs.
708
713
  #
709
714
  # For information about symmetric and asymmetric CMKs, see [Using
710
- # Symmetric and Asymmetric CMKs][7] in the *AWS Key Management Service
715
+ # Symmetric and Asymmetric CMKs][8] in the *AWS Key Management Service
711
716
  # Developer Guide*.
712
717
  #
713
718
  # To perform this operation on a CMK in a different AWS account, specify
714
719
  # the key ARN in the value of the `KeyId` parameter. For more
715
- # information about grants, see [Grants][8] in the <i> <i>AWS Key
720
+ # information about grants, see [Grants][9] in the <i> <i>AWS Key
716
721
  # Management Service Developer Guide</i> </i>.
717
722
  #
718
723
  # The CMK that you use for this operation must be in a compatible key
719
724
  # state. For details, see [How Key State Affects Use of a Customer
720
- # Master Key][9] in the *AWS Key Management Service Developer Guide*.
725
+ # Master Key][10] in the *AWS Key Management Service Developer Guide*.
721
726
  #
722
727
  #
723
728
  #
724
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
725
- # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey
726
- # [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair
727
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
728
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
729
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
730
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
731
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
732
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
729
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
730
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
731
+ # [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey
732
+ # [4]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair
733
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
734
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
735
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
736
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
737
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
738
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
733
739
  #
734
740
  # @option params [required, String] :key_id
735
741
  # The unique identifier for the customer master key (CMK) that the grant
@@ -783,15 +789,16 @@ module Aws::KMS
783
789
  # A list of operations that the grant permits.
784
790
  #
785
791
  # @option params [Types::GrantConstraints] :constraints
786
- # Allows a cryptographic operation only when the encryption context
792
+ # Allows a [cryptographic operation][1] only when the encryption context
787
793
  # matches or includes the encryption context specified in this
788
794
  # structure. For more information about encryption context, see
789
- # [Encryption Context][1] in the <i> <i>AWS Key Management Service
795
+ # [Encryption Context][2] in the <i> <i>AWS Key Management Service
790
796
  # Developer Guide</i> </i>.
791
797
  #
792
798
  #
793
799
  #
794
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
800
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
801
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
795
802
  #
796
803
  # @option params [Array<String>] :grant_tokens
797
804
  # A list of grant tokens.
@@ -1006,10 +1013,10 @@ module Aws::KMS
1006
1013
  # for a task.
1007
1014
  #
1008
1015
  # @option params [String] :key_usage
1009
- # Determines the cryptographic operations for which you can use the CMK.
1010
- # The default value is `ENCRYPT_DECRYPT`. This parameter is required
1011
- # only for asymmetric CMKs. You can't change the `KeyUsage` value after
1012
- # the CMK is created.
1016
+ # Determines the [cryptographic operations][1] for which you can use the
1017
+ # CMK. The default value is `ENCRYPT_DECRYPT`. This parameter is
1018
+ # required only for asymmetric CMKs. You can't change the `KeyUsage`
1019
+ # value after the CMK is created.
1013
1020
  #
1014
1021
  # Select only one valid value.
1015
1022
  #
@@ -1020,6 +1027,10 @@ module Aws::KMS
1020
1027
  #
1021
1028
  # * For asymmetric CMKs with ECC key material, specify `SIGN_VERIFY`.
1022
1029
  #
1030
+ #
1031
+ #
1032
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1033
+ #
1023
1034
  # @option params [String] :customer_master_key_spec
1024
1035
  # Specifies the type of CMK to create. The default value,
1025
1036
  # `SYMMETRIC_DEFAULT`, creates a CMK with a 256-bit symmetric key for
@@ -1310,9 +1321,9 @@ module Aws::KMS
1310
1321
  #
1311
1322
  # @option params [Hash<String,String>] :encryption_context
1312
1323
  # Specifies the encryption context to use when decrypting the data. An
1313
- # encryption context is valid only for cryptographic operations with a
1314
- # symmetric CMK. The standard asymmetric encryption algorithms that AWS
1315
- # KMS uses do not support an encryption context.
1324
+ # encryption context is valid only for [cryptographic operations][1]
1325
+ # with a symmetric CMK. The standard asymmetric encryption algorithms
1326
+ # that AWS KMS uses do not support an encryption context.
1316
1327
  #
1317
1328
  # An *encryption context* is a collection of non-secret key-value pairs
1318
1329
  # that represents additional authenticated data. When you use an
@@ -1321,12 +1332,13 @@ module Aws::KMS
1321
1332
  # encryption context is optional when encrypting with a symmetric CMK,
1322
1333
  # but it is highly recommended.
1323
1334
  #
1324
- # For more information, see [Encryption Context][1] in the *AWS Key
1335
+ # For more information, see [Encryption Context][2] in the *AWS Key
1325
1336
  # Management Service Developer Guide*.
1326
1337
  #
1327
1338
  #
1328
1339
  #
1329
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
1340
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1341
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
1330
1342
  #
1331
1343
  # @option params [Array<String>] :grant_tokens
1332
1344
  # A list of grant tokens.
@@ -1479,13 +1491,13 @@ module Aws::KMS
1479
1491
  # The custom key store that you delete cannot contain any AWS KMS
1480
1492
  # [customer master keys (CMKs)][2]. Before deleting the key store,
1481
1493
  # verify that you will never need to use any of the CMKs in the key
1482
- # store for any cryptographic operations. Then, use ScheduleKeyDeletion
1483
- # to delete the AWS KMS customer master keys (CMKs) from the key store.
1484
- # When the scheduled waiting period expires, the `ScheduleKeyDeletion`
1485
- # operation deletes the CMKs. Then it makes a best effort to delete the
1486
- # key material from the associated cluster. However, you might need to
1487
- # manually [delete the orphaned key material][3] from the cluster and
1488
- # its backups.
1494
+ # store for any [cryptographic operations][3]. Then, use
1495
+ # ScheduleKeyDeletion to delete the AWS KMS customer master keys (CMKs)
1496
+ # from the key store. When the scheduled waiting period expires, the
1497
+ # `ScheduleKeyDeletion` operation deletes the CMKs. Then it makes a best
1498
+ # effort to delete the key material from the associated cluster.
1499
+ # However, you might need to manually [delete the orphaned key
1500
+ # material][4] from the cluster and its backups.
1489
1501
  #
1490
1502
  # After all CMKs are deleted from AWS KMS, use DisconnectCustomKeyStore
1491
1503
  # to disconnect the key store from AWS KMS. Then, you can delete the
@@ -1508,7 +1520,8 @@ module Aws::KMS
1508
1520
  #
1509
1521
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1510
1522
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys
1511
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
1523
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1524
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
1512
1525
  #
1513
1526
  # @option params [required, String] :custom_key_store_id
1514
1527
  # Enter the ID of the custom key store you want to delete. To find the
@@ -1848,20 +1861,21 @@ module Aws::KMS
1848
1861
  end
1849
1862
 
1850
1863
  # Sets the state of a customer master key (CMK) to disabled, thereby
1851
- # preventing its use for cryptographic operations. You cannot perform
1852
- # this operation on a CMK in a different AWS account.
1864
+ # preventing its use for [cryptographic operations][1]. You cannot
1865
+ # perform this operation on a CMK in a different AWS account.
1853
1866
  #
1854
1867
  # For more information about how key state affects the use of a CMK, see
1855
- # [How Key State Affects the Use of a Customer Master Key][1] in the <i>
1868
+ # [How Key State Affects the Use of a Customer Master Key][2] in the <i>
1856
1869
  # <i>AWS Key Management Service Developer Guide</i> </i>.
1857
1870
  #
1858
1871
  # The CMK that you use for this operation must be in a compatible key
1859
1872
  # state. For details, see [How Key State Affects Use of a Customer
1860
- # Master Key][1] in the *AWS Key Management Service Developer Guide*.
1873
+ # Master Key][2] in the *AWS Key Management Service Developer Guide*.
1861
1874
  #
1862
1875
  #
1863
1876
  #
1864
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1877
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1878
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1865
1879
  #
1866
1880
  # @option params [required, String] :key_id
1867
1881
  # A unique identifier for the customer master key (CMK).
@@ -1976,8 +1990,8 @@ module Aws::KMS
1976
1990
  #
1977
1991
  # <note markdown="1"> While a custom key store is disconnected, all attempts to create
1978
1992
  # customer master keys (CMKs) in the custom key store or to use existing
1979
- # CMKs in cryptographic operations will fail. This action can prevent
1980
- # users from storing and accessing sensitive data.
1993
+ # CMKs in [cryptographic operations][2] will fail. This action can
1994
+ # prevent users from storing and accessing sensitive data.
1981
1995
  #
1982
1996
  # </note>
1983
1997
  #
@@ -1997,6 +2011,7 @@ module Aws::KMS
1997
2011
  #
1998
2012
  #
1999
2013
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2014
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2000
2015
  #
2001
2016
  # @option params [required, String] :custom_key_store_id
2002
2017
  # Enter the ID of the custom key store you want to disconnect. To find
@@ -2021,16 +2036,17 @@ module Aws::KMS
2021
2036
  end
2022
2037
 
2023
2038
  # Sets the key state of a customer master key (CMK) to enabled. This
2024
- # allows you to use the CMK for cryptographic operations. You cannot
2025
- # perform this operation on a CMK in a different AWS account.
2039
+ # allows you to use the CMK for [cryptographic operations][1]. You
2040
+ # cannot perform this operation on a CMK in a different AWS account.
2026
2041
  #
2027
2042
  # The CMK that you use for this operation must be in a compatible key
2028
2043
  # state. For details, see [How Key State Affects Use of a Customer
2029
- # Master Key][1] in the *AWS Key Management Service Developer Guide*.
2044
+ # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2030
2045
  #
2031
2046
  #
2032
2047
  #
2033
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2048
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2049
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2034
2050
  #
2035
2051
  # @option params [required, String] :key_id
2036
2052
  # A unique identifier for the customer master key (CMK).
@@ -2142,11 +2158,13 @@ module Aws::KMS
2142
2158
  # identifier or database password, or other sensitive information.
2143
2159
  #
2144
2160
  # * You can use the `Encrypt` operation to move encrypted data from one
2145
- # AWS region to another. In the first region, generate a data key and
2146
- # use the plaintext key to encrypt the data. Then, in the new region,
2147
- # call the `Encrypt` method on same plaintext data key. Now, you can
2148
- # safely move the encrypted data and encrypted data key to the new
2149
- # region, and decrypt in the new region when necessary.
2161
+ # AWS Region to another. For example, in Region A, generate a data key
2162
+ # and use the plaintext key to encrypt your data. Then, in Region A,
2163
+ # use the `Encrypt` operation to encrypt the plaintext data key under
2164
+ # a CMK in Region B. Now, you can move the encrypted data and the
2165
+ # encrypted data key to Region B. When necessary, you can decrypt the
2166
+ # encrypted data key and the encrypted data entirely within in Region
2167
+ # B.
2150
2168
  #
2151
2169
  # You don't need to use the `Encrypt` operation to encrypt a data key.
2152
2170
  # The GenerateDataKey and GenerateDataKeyPair operations return a
@@ -2246,9 +2264,10 @@ module Aws::KMS
2246
2264
  #
2247
2265
  # @option params [Hash<String,String>] :encryption_context
2248
2266
  # Specifies the encryption context that will be used to encrypt the
2249
- # data. An encryption context is valid only for cryptographic operations
2250
- # with a symmetric CMK. The standard asymmetric encryption algorithms
2251
- # that AWS KMS uses do not support an encryption context.
2267
+ # data. An encryption context is valid only for [cryptographic
2268
+ # operations][1] with a symmetric CMK. The standard asymmetric
2269
+ # encryption algorithms that AWS KMS uses do not support an encryption
2270
+ # context.
2252
2271
  #
2253
2272
  # An *encryption context* is a collection of non-secret key-value pairs
2254
2273
  # that represents additional authenticated data. When you use an
@@ -2257,12 +2276,13 @@ module Aws::KMS
2257
2276
  # encryption context is optional when encrypting with a symmetric CMK,
2258
2277
  # but it is highly recommended.
2259
2278
  #
2260
- # For more information, see [Encryption Context][1] in the *AWS Key
2279
+ # For more information, see [Encryption Context][2] in the *AWS Key
2261
2280
  # Management Service Developer Guide*.
2262
2281
  #
2263
2282
  #
2264
2283
  #
2265
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2284
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2285
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2266
2286
  #
2267
2287
  # @option params [Array<String>] :grant_tokens
2268
2288
  # A list of grant tokens.
@@ -2333,28 +2353,22 @@ module Aws::KMS
2333
2353
  req.send_request(options)
2334
2354
  end
2335
2355
 
2336
- # Generates a unique symmetric data key. This operation returns a
2337
- # plaintext copy of the data key and a copy that is encrypted under a
2338
- # customer master key (CMK) that you specify. You can use the plaintext
2339
- # key to encrypt your data outside of AWS KMS and store the encrypted
2340
- # data key with the encrypted data.
2356
+ # Generates a unique symmetric data key for client-side encryption. This
2357
+ # operation returns a plaintext copy of the data key and a copy that is
2358
+ # encrypted under a customer master key (CMK) that you specify. You can
2359
+ # use the plaintext key to encrypt your data outside of AWS KMS and
2360
+ # store the encrypted data key with the encrypted data.
2341
2361
  #
2342
2362
  # `GenerateDataKey` returns a unique data key for each request. The
2343
- # bytes in the key are not related to the caller or CMK that is used to
2344
- # encrypt the data key.
2363
+ # bytes in the plaintext key are not related to the caller or the CMK.
2345
2364
  #
2346
2365
  # To generate a data key, specify the symmetric CMK that will be used to
2347
2366
  # encrypt the data key. You cannot use an asymmetric CMK to generate
2348
2367
  # data keys. To get the type of your CMK, use the DescribeKey operation.
2349
- #
2350
2368
  # You must also specify the length of the data key. Use either the
2351
2369
  # `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit
2352
2370
  # and 256-bit data keys, use the `KeySpec` parameter.
2353
2371
  #
2354
- # If the operation succeeds, the plaintext copy of the data key is in
2355
- # the `Plaintext` field of the response, and the encrypted copy of the
2356
- # data key in the `CiphertextBlob` field.
2357
- #
2358
2372
  # To get only an encrypted copy of the data key, use
2359
2373
  # GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key
2360
2374
  # pair, use the GenerateDataKeyPair or
@@ -2365,7 +2379,7 @@ module Aws::KMS
2365
2379
  # to the encryption operation. If you specify an `EncryptionContext`,
2366
2380
  # you must specify the same encryption context (a case-sensitive exact
2367
2381
  # match) when decrypting the encrypted data key. Otherwise, the request
2368
- # to decrypt fails with an InvalidCiphertextException. For more
2382
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2369
2383
  # information, see [Encryption Context][1] in the *AWS Key Management
2370
2384
  # Service Developer Guide*.
2371
2385
  #
@@ -2373,30 +2387,40 @@ module Aws::KMS
2373
2387
  # state. For details, see [How Key State Affects Use of a Customer
2374
2388
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2375
2389
  #
2390
+ # **How to use your data key**
2391
+ #
2376
2392
  # We recommend that you use the following pattern to encrypt data
2377
- # locally in your application:
2393
+ # locally in your application. You can write your own code or use a
2394
+ # client-side encryption library, such as the [AWS Encryption SDK][3],
2395
+ # the [Amazon DynamoDB Encryption Client][4], or [Amazon S3 client-side
2396
+ # encryption][5] to do these tasks for you.
2378
2397
  #
2379
- # 1. Use the `GenerateDataKey` operation to get a data encryption key.
2398
+ # To encrypt data outside of AWS KMS:
2380
2399
  #
2381
- # 2. Use the plaintext data key (returned in the `Plaintext` field of
2382
- # the response) to encrypt data locally, then erase the plaintext
2383
- # data key from memory.
2400
+ # 1. Use the `GenerateDataKey` operation to get a data key.
2384
2401
  #
2385
- # 3. Store the encrypted data key (returned in the `CiphertextBlob`
2386
- # field of the response) alongside the locally encrypted data.
2402
+ # 2. Use the plaintext data key (in the `Plaintext` field of the
2403
+ # response) to encrypt your data outside of AWS KMS. Then erase the
2404
+ # plaintext data key from memory.
2387
2405
  #
2388
- # To decrypt data locally:
2406
+ # 3. Store the encrypted data key (in the `CiphertextBlob` field of the
2407
+ # response) with the encrypted data.
2408
+ #
2409
+ # To decrypt data outside of AWS KMS:
2389
2410
  #
2390
2411
  # 1. Use the Decrypt operation to decrypt the encrypted data key. The
2391
2412
  # operation returns a plaintext copy of the data key.
2392
2413
  #
2393
- # 2. Use the plaintext data key to decrypt data locally, then erase the
2394
- # plaintext data key from memory.
2414
+ # 2. Use the plaintext data key to decrypt data outside of AWS KMS,
2415
+ # then erase the plaintext data key from memory.
2395
2416
  #
2396
2417
  #
2397
2418
  #
2398
2419
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2399
2420
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2421
+ # [3]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
2422
+ # [4]: https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/
2423
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
2400
2424
  #
2401
2425
  # @option params [required, String] :key_id
2402
2426
  # Identifies the symmetric CMK that encrypts the data key.
@@ -2534,8 +2558,8 @@ module Aws::KMS
2534
2558
  #
2535
2559
  # To generate a data key pair, you must specify a symmetric customer
2536
2560
  # master key (CMK) to encrypt the private key in a data key pair. You
2537
- # cannot use an asymmetric CMK. To get the type of your CMK, use the
2538
- # DescribeKey operation.
2561
+ # cannot use an asymmetric CMK or a CMK in a custom key store. To get
2562
+ # the type and origin of your CMK, use the DescribeKey operation.
2539
2563
  #
2540
2564
  # If you are using the data key pair to encrypt data, or for any
2541
2565
  # operation where you don't immediately need a private key, consider
@@ -2550,7 +2574,7 @@ module Aws::KMS
2550
2574
  # to the encryption operation. If you specify an `EncryptionContext`,
2551
2575
  # you must specify the same encryption context (a case-sensitive exact
2552
2576
  # match) when decrypting the encrypted data key. Otherwise, the request
2553
- # to decrypt fails with an InvalidCiphertextException. For more
2577
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2554
2578
  # information, see [Encryption Context][1] in the *AWS Key Management
2555
2579
  # Service Developer Guide*.
2556
2580
  #
@@ -2583,7 +2607,9 @@ module Aws::KMS
2583
2607
  #
2584
2608
  # @option params [required, String] :key_id
2585
2609
  # Specifies the symmetric CMK that encrypts the private key in the data
2586
- # key pair. You cannot specify an asymmetric CMKs.
2610
+ # key pair. You cannot specify an asymmetric CMK or a CMK in a custom
2611
+ # key store. To get the type and origin of your CMK, use the DescribeKey
2612
+ # operation.
2587
2613
  #
2588
2614
  # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2589
2615
  # name, or alias ARN. When using an alias name, prefix it with
@@ -2666,8 +2692,9 @@ module Aws::KMS
2666
2692
  #
2667
2693
  # To generate a data key pair, you must specify a symmetric customer
2668
2694
  # master key (CMK) to encrypt the private key in the data key pair. You
2669
- # cannot use an asymmetric CMK. To get the type of your CMK, use the
2670
- # `KeySpec` field in the DescribeKey response.
2695
+ # cannot use an asymmetric CMK or a CMK in a custom key store. To get
2696
+ # the type and origin of your CMK, use the `KeySpec` field in the
2697
+ # DescribeKey response.
2671
2698
  #
2672
2699
  # You can use the public key that `GenerateDataKeyPairWithoutPlaintext`
2673
2700
  # returns to encrypt data or verify a signature outside of AWS KMS.
@@ -2683,7 +2710,7 @@ module Aws::KMS
2683
2710
  # to the encryption operation. If you specify an `EncryptionContext`,
2684
2711
  # you must specify the same encryption context (a case-sensitive exact
2685
2712
  # match) when decrypting the encrypted data key. Otherwise, the request
2686
- # to decrypt fails with an InvalidCiphertextException. For more
2713
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2687
2714
  # information, see [Encryption Context][1] in the *AWS Key Management
2688
2715
  # Service Developer Guide*.
2689
2716
  #
@@ -2716,8 +2743,9 @@ module Aws::KMS
2716
2743
  #
2717
2744
  # @option params [required, String] :key_id
2718
2745
  # Specifies the CMK that encrypts the private key in the data key pair.
2719
- # You must specify a symmetric CMK. You cannot use an asymmetric CMK. To
2720
- # get the type of your CMK, use the DescribeKey operation.
2746
+ # You must specify a symmetric CMK. You cannot use an asymmetric CMK or
2747
+ # a CMK in a custom key store. To get the type and origin of your CMK,
2748
+ # use the DescribeKey operation.
2721
2749
  #
2722
2750
  # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2723
2751
  # name, or alias ARN. When using an alias name, prefix it with
@@ -2826,7 +2854,7 @@ module Aws::KMS
2826
2854
  # to the encryption operation. If you specify an `EncryptionContext`,
2827
2855
  # you must specify the same encryption context (a case-sensitive exact
2828
2856
  # match) when decrypting the encrypted data key. Otherwise, the request
2829
- # to decrypt fails with an InvalidCiphertextException. For more
2857
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2830
2858
  # information, see [Encryption Context][1] in the *AWS Key Management
2831
2859
  # Service Developer Guide*.
2832
2860
  #
@@ -3660,6 +3688,19 @@ module Aws::KMS
3660
3688
  # To perform this operation on a CMK in a different AWS account, specify
3661
3689
  # the key ARN in the value of the `KeyId` parameter.
3662
3690
  #
3691
+ # <note markdown="1"> The `GranteePrincipal` field in the `ListGrants` response usually
3692
+ # contains the user or role designated as the grantee principal in the
3693
+ # grant. However, when the grantee principal in the grant is an AWS
3694
+ # service, the `GranteePrincipal` field contains the [service
3695
+ # principal][1], which might represent several different grantee
3696
+ # principals.
3697
+ #
3698
+ # </note>
3699
+ #
3700
+ #
3701
+ #
3702
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services
3703
+ #
3663
3704
  # @option params [Integer] :limit
3664
3705
  # Use this parameter to specify the maximum number of items to return.
3665
3706
  # When this value is present, AWS KMS does not return more than the
@@ -4289,16 +4330,16 @@ module Aws::KMS
4289
4330
  # under which data is encrypted, such as when you [manually rotate][1] a
4290
4331
  # CMK or change the CMK that protects a ciphertext. You can also use it
4291
4332
  # to reencrypt ciphertext under the same CMK, such as to change the
4292
- # encryption context of a ciphertext.
4333
+ # [encryption context][2] of a ciphertext.
4293
4334
  #
4294
4335
  # The `ReEncrypt` operation can decrypt ciphertext that was encrypted by
4295
4336
  # using an AWS KMS CMK in an AWS KMS operation, such as Encrypt or
4296
4337
  # GenerateDataKey. It can also decrypt ciphertext that was encrypted by
4297
- # using the public key of an asymmetric CMK outside of AWS KMS. However,
4298
- # it cannot decrypt ciphertext produced by other libraries, such as the
4299
- # [AWS Encryption SDK][2] or [Amazon S3 client-side encryption][3].
4300
- # These libraries return a ciphertext format that is incompatible with
4301
- # AWS KMS.
4338
+ # using the public key of an [asymmetric CMK][3] outside of AWS KMS.
4339
+ # However, it cannot decrypt ciphertext produced by other libraries,
4340
+ # such as the [AWS Encryption SDK][4] or [Amazon S3 client-side
4341
+ # encryption][5]. These libraries return a ciphertext format that is
4342
+ # incompatible with AWS KMS.
4302
4343
  #
4303
4344
  # When you use the `ReEncrypt` operation, you need to provide
4304
4345
  # information for the decrypt operation and the subsequent encrypt
@@ -4336,29 +4377,30 @@ module Aws::KMS
4336
4377
  # Unlike other AWS KMS API operations, `ReEncrypt` callers must have two
4337
4378
  # permissions:
4338
4379
  #
4339
- # * `kms:EncryptFrom` permission on the source CMK
4380
+ # * `kms:ReEncryptFrom` permission on the source CMK
4340
4381
  #
4341
- # * `kms:EncryptTo` permission on the destination CMK
4382
+ # * `kms:ReEncryptTo` permission on the destination CMK
4342
4383
  #
4343
- # To permit reencryption from
4344
- #
4345
- # or to a CMK, include the `"kms:ReEncrypt*"` permission in your [key
4346
- # policy][4]. This permission is automatically included in the key
4347
- # policy when you use the console to create a CMK. But you must include
4348
- # it manually when you create a CMK programmatically or when you use the
4349
- # PutKeyPolicy operation set a key policy.
4384
+ # To permit reencryption from or to a CMK, include the
4385
+ # `"kms:ReEncrypt*"` permission in your [key policy][6]. This permission
4386
+ # is automatically included in the key policy when you use the console
4387
+ # to create a CMK. But you must include it manually when you create a
4388
+ # CMK programmatically or when you use the PutKeyPolicy operation to set
4389
+ # a key policy.
4350
4390
  #
4351
4391
  # The CMK that you use for this operation must be in a compatible key
4352
4392
  # state. For details, see [How Key State Affects Use of a Customer
4353
- # Master Key][5] in the *AWS Key Management Service Developer Guide*.
4393
+ # Master Key][7] in the *AWS Key Management Service Developer Guide*.
4354
4394
  #
4355
4395
  #
4356
4396
  #
4357
4397
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually
4358
- # [2]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
4359
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
4360
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4361
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4398
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4399
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks
4400
+ # [4]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
4401
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
4402
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4403
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4362
4404
  #
4363
4405
  # @option params [required, String, IO] :ciphertext_blob
4364
4406
  # Ciphertext of the data to reencrypt.
@@ -5437,7 +5479,7 @@ module Aws::KMS
5437
5479
  params: params,
5438
5480
  config: config)
5439
5481
  context[:gem_name] = 'aws-sdk-kms'
5440
- context[:gem_version] = '1.31.0'
5482
+ context[:gem_version] = '1.36.0'
5441
5483
  Seahorse::Client::Request.new(handlers, context)
5442
5484
  end
5443
5485