aws-sdk-kms 1.29.0 → 1.34.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 390a07e2032bb5b13eda47e864a9ed55c9274aa9
4
- data.tar.gz: 69953b632d5845c997248f12b64fb627039c0a9e
2
+ SHA256:
3
+ metadata.gz: 6ec2a5d20b0ad0b2c10596f9cf98fbefa9eec505bc2eec28e4e27a9c3976e123
4
+ data.tar.gz: 5d5d45fa3fef35b31d3f8f8f872cc6666647d700d4e4d63af7e4b891c58facd8
5
5
  SHA512:
6
- metadata.gz: 67394aa6a7da595a5387944e31f3585a6a210b3724d19d35519d7403f030b6b23a7c2ee64e7755e6ba759ef27c86aae01fd1ce8918e030ecfb5b88aa0320b87e
7
- data.tar.gz: 56b2a2843623751e0085783be6c4c48cc7d364396b4ca43f26059a558ad7d9b6ffb386701051380f5f13469c65dc2a037eb1d0252a1b5bcfb8148f886157b2b6
6
+ metadata.gz: 9d735492c3254f205840b33af1619b46aa6fd23d63cf44e4008d30241d7a4b108482eb0e42b7e3e4666ee59c0b22f0b5274542273e30c3693947650fc4058c64
7
+ data.tar.gz: b69a346db9becde10406e071700935106090f9aed650589f22e8351aaf77b684516ab538164ca0a05a3849d3db2f4cee46a9cbe48d62585e5091281f1fa4ffee
@@ -24,17 +24,20 @@ require_relative 'aws-sdk-kms/customizations'
24
24
  # methods each accept a hash of request parameters and return a response
25
25
  # structure.
26
26
  #
27
+ # kms = Aws::KMS::Client.new
28
+ # resp = kms.cancel_key_deletion(params)
29
+ #
27
30
  # See {Client} for more information.
28
31
  #
29
32
  # # Errors
30
33
  #
31
- # Errors returned from AWS Key Management Service all
32
- # extend {Errors::ServiceError}.
34
+ # Errors returned from AWS Key Management Service are defined in the
35
+ # {Errors} module and all extend {Errors::ServiceError}.
33
36
  #
34
37
  # begin
35
38
  # # do stuff
36
39
  # rescue Aws::KMS::Errors::ServiceError
37
- # # rescues all service API errors
40
+ # # rescues all AWS Key Management Service API errors
38
41
  # end
39
42
  #
40
43
  # See {Errors} for more information.
@@ -42,6 +45,6 @@ require_relative 'aws-sdk-kms/customizations'
42
45
  # @service
43
46
  module Aws::KMS
44
47
 
45
- GEM_VERSION = '1.29.0'
48
+ GEM_VERSION = '1.34.1'
46
49
 
47
50
  end
@@ -24,12 +24,25 @@ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
24
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
25
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
26
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
27
+ require 'aws-sdk-core/plugins/http_checksum.rb'
27
28
  require 'aws-sdk-core/plugins/signature_v4.rb'
28
29
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
29
30
 
30
31
  Aws::Plugins::GlobalConfiguration.add_identifier(:kms)
31
32
 
32
33
  module Aws::KMS
34
+ # An API client for KMS. To construct a client, you need to configure a `:region` and `:credentials`.
35
+ #
36
+ # client = Aws::KMS::Client.new(
37
+ # region: region_name,
38
+ # credentials: credentials,
39
+ # # ...
40
+ # )
41
+ #
42
+ # For details on configuring region and credentials see
43
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
44
+ #
45
+ # See {#initialize} for a full list of supported configuration options.
33
46
  class Client < Seahorse::Client::Base
34
47
 
35
48
  include Aws::ClientStubs
@@ -57,6 +70,7 @@ module Aws::KMS
57
70
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
58
71
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
59
72
  add_plugin(Aws::Plugins::TransferEncoding)
73
+ add_plugin(Aws::Plugins::HttpChecksum)
60
74
  add_plugin(Aws::Plugins::SignatureV4)
61
75
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
62
76
 
@@ -93,7 +107,7 @@ module Aws::KMS
93
107
  # @option options [required, String] :region
94
108
  # The AWS region to connect to. The configured `:region` is
95
109
  # used to determine the service `:endpoint`. When not passed,
96
- # a default `:region` is search for in the following locations:
110
+ # a default `:region` is searched for in the following locations:
97
111
  #
98
112
  # * `Aws.config[:region]`
99
113
  # * `ENV['AWS_REGION']`
@@ -108,6 +122,12 @@ module Aws::KMS
108
122
  # When set to `true`, a thread polling for endpoints will be running in
109
123
  # the background every 60 secs (default). Defaults to `false`.
110
124
  #
125
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
126
+ # Used only in `adaptive` retry mode. When true, the request will sleep
127
+ # until there is sufficent client side capacity to retry the request.
128
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
129
+ # not retry instead of sleeping.
130
+ #
111
131
  # @option options [Boolean] :client_side_monitoring (false)
112
132
  # When `true`, client-side metrics will be collected for all API requests from
113
133
  # this client.
@@ -132,6 +152,10 @@ module Aws::KMS
132
152
  # When `true`, an attempt is made to coerce request parameters into
133
153
  # the required types.
134
154
  #
155
+ # @option options [Boolean] :correct_clock_skew (true)
156
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
157
+ # a clock skew correction and retry requests with skewed client clocks.
158
+ #
135
159
  # @option options [Boolean] :disable_host_prefix_injection (false)
136
160
  # Set to true to disable SDK automatically adding host prefix
137
161
  # to default service endpoint when available.
@@ -139,7 +163,7 @@ module Aws::KMS
139
163
  # @option options [String] :endpoint
140
164
  # The client endpoint is normally constructed from the `:region`
141
165
  # option. You should only configure an `:endpoint` when connecting
142
- # to test endpoints. This should be avalid HTTP(S) URI.
166
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
143
167
  #
144
168
  # @option options [Integer] :endpoint_cache_max_entries (1000)
145
169
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -154,7 +178,7 @@ module Aws::KMS
154
178
  # requests fetching endpoints information. Defaults to 60 sec.
155
179
  #
156
180
  # @option options [Boolean] :endpoint_discovery (false)
157
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
181
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
158
182
  #
159
183
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
160
184
  # The log formatter.
@@ -166,15 +190,29 @@ module Aws::KMS
166
190
  # The Logger instance to send log messages to. If this option
167
191
  # is not set, logging will be disabled.
168
192
  #
193
+ # @option options [Integer] :max_attempts (3)
194
+ # An integer representing the maximum number attempts that will be made for
195
+ # a single request, including the initial attempt. For example,
196
+ # setting this value to 5 will result in a request being retried up to
197
+ # 4 times. Used in `standard` and `adaptive` retry modes.
198
+ #
169
199
  # @option options [String] :profile ("default")
170
200
  # Used when loading credentials from the shared credentials file
171
201
  # at HOME/.aws/credentials. When not specified, 'default' is used.
172
202
  #
203
+ # @option options [Proc] :retry_backoff
204
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
205
+ # This option is only used in the `legacy` retry mode.
206
+ #
173
207
  # @option options [Float] :retry_base_delay (0.3)
174
- # The base delay in seconds used by the default backoff function.
208
+ # The base delay in seconds used by the default backoff function. This option
209
+ # is only used in the `legacy` retry mode.
175
210
  #
176
211
  # @option options [Symbol] :retry_jitter (:none)
177
- # A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
212
+ # A delay randomiser function used by the default backoff function.
213
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
214
+ # otherwise a Proc that takes and returns a number. This option is only used
215
+ # in the `legacy` retry mode.
178
216
  #
179
217
  # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
180
218
  #
@@ -182,11 +220,30 @@ module Aws::KMS
182
220
  # The maximum number of times to retry failed requests. Only
183
221
  # ~ 500 level server errors and certain ~ 400 level client errors
184
222
  # are retried. Generally, these are throttling errors, data
185
- # checksum errors, networking errors, timeout errors and auth
186
- # errors from expired credentials.
223
+ # checksum errors, networking errors, timeout errors, auth errors,
224
+ # endpoint discovery, and errors from expired credentials.
225
+ # This option is only used in the `legacy` retry mode.
187
226
  #
188
227
  # @option options [Integer] :retry_max_delay (0)
189
- # The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
228
+ # The maximum number of seconds to delay between retries (0 for no limit)
229
+ # used by the default backoff function. This option is only used in the
230
+ # `legacy` retry mode.
231
+ #
232
+ # @option options [String] :retry_mode ("legacy")
233
+ # Specifies which retry algorithm to use. Values are:
234
+ #
235
+ # * `legacy` - The pre-existing retry behavior. This is default value if
236
+ # no retry mode is provided.
237
+ #
238
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
239
+ # This includes support for retry quotas, which limit the number of
240
+ # unsuccessful retries a client can make.
241
+ #
242
+ # * `adaptive` - An experimental retry mode that includes all the
243
+ # functionality of `standard` mode along with automatic client side
244
+ # throttling. This is a provisional mode that may change behavior
245
+ # in the future.
246
+ #
190
247
  #
191
248
  # @option options [String] :secret_access_key
192
249
  #
@@ -219,16 +276,15 @@ module Aws::KMS
219
276
  # requests through. Formatted like 'http://proxy.com:123'.
220
277
  #
221
278
  # @option options [Float] :http_open_timeout (15) The number of
222
- # seconds to wait when opening a HTTP session before rasing a
279
+ # seconds to wait when opening a HTTP session before raising a
223
280
  # `Timeout::Error`.
224
281
  #
225
282
  # @option options [Integer] :http_read_timeout (60) The default
226
283
  # number of seconds to wait for response data. This value can
227
- # safely be set
228
- # per-request on the session yeidled by {#session_for}.
284
+ # safely be set per-request on the session.
229
285
  #
230
286
  # @option options [Float] :http_idle_timeout (5) The number of
231
- # seconds a connection is allowed to sit idble before it is
287
+ # seconds a connection is allowed to sit idle before it is
232
288
  # considered stale. Stale connections are closed and removed
233
289
  # from the pool before making a request.
234
290
  #
@@ -237,7 +293,7 @@ module Aws::KMS
237
293
  # request body. This option has no effect unless the request has
238
294
  # "Expect" header set to "100-continue". Defaults to `nil` which
239
295
  # disables this behaviour. This value can safely be set per
240
- # request on the session yeidled by {#session_for}.
296
+ # request on the session.
241
297
  #
242
298
  # @option options [Boolean] :http_wire_trace (false) When `true`,
243
299
  # HTTP debug output will be sent to the `:logger`.
@@ -406,9 +462,9 @@ module Aws::KMS
406
462
  end
407
463
 
408
464
  # Creates a display name for a customer managed customer master key
409
- # (CMK). You can use an alias to identify a CMK in cryptographic
410
- # operations, such as Encrypt and GenerateDataKey. You can change the
411
- # CMK associated with the alias at any time.
465
+ # (CMK). You can use an alias to identify a CMK in [cryptographic
466
+ # operations][1], such as Encrypt and GenerateDataKey. You can change
467
+ # the CMK associated with the alias at any time.
412
468
  #
413
469
  # Aliases are easier to remember than key IDs. They can also help to
414
470
  # simplify your applications. For example, if you use an alias in your
@@ -432,8 +488,8 @@ module Aws::KMS
432
488
  #
433
489
  # * You can associate an alias with any customer managed CMK in the same
434
490
  # AWS account and Region. However, you do not have permission to
435
- # associate an alias with an [AWS managed CMK][1] or an [AWS owned
436
- # CMK][2].
491
+ # associate an alias with an [AWS managed CMK][2] or an [AWS owned
492
+ # CMK][3].
437
493
  #
438
494
  # * To change the CMK associated with an alias, use the UpdateAlias
439
495
  # operation. The current CMK and the new CMK must be the same type
@@ -445,7 +501,7 @@ module Aws::KMS
445
501
  # `alias/ExampleAlias`. It can contain only alphanumeric characters,
446
502
  # forward slashes (/), underscores (\_), and dashes (-). The alias
447
503
  # name cannot begin with `alias/aws/`. The `alias/aws/` prefix is
448
- # reserved for [AWS managed CMKs][1].
504
+ # reserved for [AWS managed CMKs][2].
449
505
  #
450
506
  # * The alias name must be unique within an AWS Region. However, you can
451
507
  # use the same alias name in multiple Regions of the same AWS account.
@@ -456,12 +512,12 @@ module Aws::KMS
456
512
  # and then create a new alias with the desired name.
457
513
  #
458
514
  # * You can use an alias name or alias ARN to identify a CMK in AWS KMS
459
- # cryptographic operations and in the DescribeKey operation. However,
460
- # you cannot use alias names or alias ARNs in API operations that
461
- # manage CMKs, such as DisableKey or GetKeyPolicy. For information
462
- # about the valid CMK identifiers for each AWS KMS API operation, see
463
- # the descriptions of the `KeyId` parameter in the API operation
464
- # documentation.
515
+ # [cryptographic operations][1] and in the DescribeKey operation.
516
+ # However, you cannot use alias names or alias ARNs in API operations
517
+ # that manage CMKs, such as DisableKey or GetKeyPolicy. For
518
+ # information about the valid CMK identifiers for each AWS KMS API
519
+ # operation, see the descriptions of the `KeyId` parameter in the API
520
+ # operation documentation.
465
521
  #
466
522
  # Because an alias is not a property of a CMK, you can delete and change
467
523
  # the aliases of a CMK without affecting the CMK. Also, aliases do not
@@ -471,13 +527,14 @@ module Aws::KMS
471
527
  #
472
528
  # The CMK that you use for this operation must be in a compatible key
473
529
  # state. For details, see [How Key State Affects Use of a Customer
474
- # Master Key][3] in the *AWS Key Management Service Developer Guide*.
530
+ # Master Key][4] in the *AWS Key Management Service Developer Guide*.
475
531
  #
476
532
  #
477
533
  #
478
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
479
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
480
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
534
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
535
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
536
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
537
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
481
538
  #
482
539
  # @option params [required, String] :alias_name
483
540
  # Specifies the alias name. This value must begin with `alias/` followed
@@ -623,8 +680,8 @@ module Aws::KMS
623
680
  # grant are met. When setting permissions, grants are an alternative to
624
681
  # key policies.
625
682
  #
626
- # To create a grant that allows a cryptographic operation only when the
627
- # request includes a particular [encryption context][1], use the
683
+ # To create a grant that allows a [cryptographic operation][1] only when
684
+ # the request includes a particular [encryption context][2], use the
628
685
  # `Constraints` parameter. For details, see GrantConstraints.
629
686
  #
630
687
  # You can create grants on symmetric and asymmetric CMKs. However, if
@@ -639,9 +696,9 @@ module Aws::KMS
639
696
  #
640
697
  # * Grants for asymmetric CMKs cannot allow operations that are not
641
698
  # supported for asymmetric CMKs, including operations that [generate
642
- # data keys][2] or [data key pairs][3], or operations related to
643
- # [automatic key rotation][4], [imported key material][5], or CMKs in
644
- # [custom key stores][6].
699
+ # data keys][3] or [data key pairs][4], or operations related to
700
+ # [automatic key rotation][5], [imported key material][6], or CMKs in
701
+ # [custom key stores][7].
645
702
  #
646
703
  # * Grants for asymmetric CMKs with a `KeyUsage` of `ENCRYPT_DECRYPT`
647
704
  # cannot allow the Sign or Verify operations. Grants for asymmetric
@@ -653,29 +710,30 @@ module Aws::KMS
653
710
  # asymmetric CMKs.
654
711
  #
655
712
  # For information about symmetric and asymmetric CMKs, see [Using
656
- # Symmetric and Asymmetric CMKs][7] in the *AWS Key Management Service
713
+ # Symmetric and Asymmetric CMKs][8] in the *AWS Key Management Service
657
714
  # Developer Guide*.
658
715
  #
659
716
  # To perform this operation on a CMK in a different AWS account, specify
660
717
  # the key ARN in the value of the `KeyId` parameter. For more
661
- # information about grants, see [Grants][8] in the <i> <i>AWS Key
718
+ # information about grants, see [Grants][9] in the <i> <i>AWS Key
662
719
  # Management Service Developer Guide</i> </i>.
663
720
  #
664
721
  # The CMK that you use for this operation must be in a compatible key
665
722
  # state. For details, see [How Key State Affects Use of a Customer
666
- # Master Key][9] in the *AWS Key Management Service Developer Guide*.
723
+ # Master Key][10] in the *AWS Key Management Service Developer Guide*.
667
724
  #
668
725
  #
669
726
  #
670
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
671
- # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey
672
- # [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair
673
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
674
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
675
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
676
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
677
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
678
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
727
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
728
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
729
+ # [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey
730
+ # [4]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair
731
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
732
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
733
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
734
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
735
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
736
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
679
737
  #
680
738
  # @option params [required, String] :key_id
681
739
  # The unique identifier for the customer master key (CMK) that the grant
@@ -729,15 +787,16 @@ module Aws::KMS
729
787
  # A list of operations that the grant permits.
730
788
  #
731
789
  # @option params [Types::GrantConstraints] :constraints
732
- # Allows a cryptographic operation only when the encryption context
790
+ # Allows a [cryptographic operation][1] only when the encryption context
733
791
  # matches or includes the encryption context specified in this
734
792
  # structure. For more information about encryption context, see
735
- # [Encryption Context][1] in the <i> <i>AWS Key Management Service
793
+ # [Encryption Context][2] in the <i> <i>AWS Key Management Service
736
794
  # Developer Guide</i> </i>.
737
795
  #
738
796
  #
739
797
  #
740
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
798
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
799
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
741
800
  #
742
801
  # @option params [Array<String>] :grant_tokens
743
802
  # A list of grant tokens.
@@ -952,10 +1011,10 @@ module Aws::KMS
952
1011
  # for a task.
953
1012
  #
954
1013
  # @option params [String] :key_usage
955
- # Determines the cryptographic operations for which you can use the CMK.
956
- # The default value is `ENCRYPT_DECRYPT`. This parameter is required
957
- # only for asymmetric CMKs. You can't change the `KeyUsage` value after
958
- # the CMK is created.
1014
+ # Determines the [cryptographic operations][1] for which you can use the
1015
+ # CMK. The default value is `ENCRYPT_DECRYPT`. This parameter is
1016
+ # required only for asymmetric CMKs. You can't change the `KeyUsage`
1017
+ # value after the CMK is created.
959
1018
  #
960
1019
  # Select only one valid value.
961
1020
  #
@@ -966,6 +1025,10 @@ module Aws::KMS
966
1025
  #
967
1026
  # * For asymmetric CMKs with ECC key material, specify `SIGN_VERIFY`.
968
1027
  #
1028
+ #
1029
+ #
1030
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1031
+ #
969
1032
  # @option params [String] :customer_master_key_spec
970
1033
  # Specifies the type of CMK to create. The default value,
971
1034
  # `SYMMETRIC_DEFAULT`, creates a CMK with a 256-bit symmetric key for
@@ -1256,9 +1319,9 @@ module Aws::KMS
1256
1319
  #
1257
1320
  # @option params [Hash<String,String>] :encryption_context
1258
1321
  # Specifies the encryption context to use when decrypting the data. An
1259
- # encryption context is valid only for cryptographic operations with a
1260
- # symmetric CMK. The standard asymmetric encryption algorithms that AWS
1261
- # KMS uses do not support an encryption context.
1322
+ # encryption context is valid only for [cryptographic operations][1]
1323
+ # with a symmetric CMK. The standard asymmetric encryption algorithms
1324
+ # that AWS KMS uses do not support an encryption context.
1262
1325
  #
1263
1326
  # An *encryption context* is a collection of non-secret key-value pairs
1264
1327
  # that represents additional authenticated data. When you use an
@@ -1267,12 +1330,13 @@ module Aws::KMS
1267
1330
  # encryption context is optional when encrypting with a symmetric CMK,
1268
1331
  # but it is highly recommended.
1269
1332
  #
1270
- # For more information, see [Encryption Context][1] in the *AWS Key
1333
+ # For more information, see [Encryption Context][2] in the *AWS Key
1271
1334
  # Management Service Developer Guide*.
1272
1335
  #
1273
1336
  #
1274
1337
  #
1275
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
1338
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1339
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
1276
1340
  #
1277
1341
  # @option params [Array<String>] :grant_tokens
1278
1342
  # A list of grant tokens.
@@ -1425,13 +1489,13 @@ module Aws::KMS
1425
1489
  # The custom key store that you delete cannot contain any AWS KMS
1426
1490
  # [customer master keys (CMKs)][2]. Before deleting the key store,
1427
1491
  # verify that you will never need to use any of the CMKs in the key
1428
- # store for any cryptographic operations. Then, use ScheduleKeyDeletion
1429
- # to delete the AWS KMS customer master keys (CMKs) from the key store.
1430
- # When the scheduled waiting period expires, the `ScheduleKeyDeletion`
1431
- # operation deletes the CMKs. Then it makes a best effort to delete the
1432
- # key material from the associated cluster. However, you might need to
1433
- # manually [delete the orphaned key material][3] from the cluster and
1434
- # its backups.
1492
+ # store for any [cryptographic operations][3]. Then, use
1493
+ # ScheduleKeyDeletion to delete the AWS KMS customer master keys (CMKs)
1494
+ # from the key store. When the scheduled waiting period expires, the
1495
+ # `ScheduleKeyDeletion` operation deletes the CMKs. Then it makes a best
1496
+ # effort to delete the key material from the associated cluster.
1497
+ # However, you might need to manually [delete the orphaned key
1498
+ # material][4] from the cluster and its backups.
1435
1499
  #
1436
1500
  # After all CMKs are deleted from AWS KMS, use DisconnectCustomKeyStore
1437
1501
  # to disconnect the key store from AWS KMS. Then, you can delete the
@@ -1454,7 +1518,8 @@ module Aws::KMS
1454
1518
  #
1455
1519
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1456
1520
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys
1457
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
1521
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1522
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
1458
1523
  #
1459
1524
  # @option params [required, String] :custom_key_store_id
1460
1525
  # Enter the ID of the custom key store you want to delete. To find the
@@ -1794,20 +1859,21 @@ module Aws::KMS
1794
1859
  end
1795
1860
 
1796
1861
  # Sets the state of a customer master key (CMK) to disabled, thereby
1797
- # preventing its use for cryptographic operations. You cannot perform
1798
- # this operation on a CMK in a different AWS account.
1862
+ # preventing its use for [cryptographic operations][1]. You cannot
1863
+ # perform this operation on a CMK in a different AWS account.
1799
1864
  #
1800
1865
  # For more information about how key state affects the use of a CMK, see
1801
- # [How Key State Affects the Use of a Customer Master Key][1] in the <i>
1866
+ # [How Key State Affects the Use of a Customer Master Key][2] in the <i>
1802
1867
  # <i>AWS Key Management Service Developer Guide</i> </i>.
1803
1868
  #
1804
1869
  # The CMK that you use for this operation must be in a compatible key
1805
1870
  # state. For details, see [How Key State Affects Use of a Customer
1806
- # Master Key][1] in the *AWS Key Management Service Developer Guide*.
1871
+ # Master Key][2] in the *AWS Key Management Service Developer Guide*.
1807
1872
  #
1808
1873
  #
1809
1874
  #
1810
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1875
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1876
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1811
1877
  #
1812
1878
  # @option params [required, String] :key_id
1813
1879
  # A unique identifier for the customer master key (CMK).
@@ -1922,8 +1988,8 @@ module Aws::KMS
1922
1988
  #
1923
1989
  # <note markdown="1"> While a custom key store is disconnected, all attempts to create
1924
1990
  # customer master keys (CMKs) in the custom key store or to use existing
1925
- # CMKs in cryptographic operations will fail. This action can prevent
1926
- # users from storing and accessing sensitive data.
1991
+ # CMKs in [cryptographic operations][2] will fail. This action can
1992
+ # prevent users from storing and accessing sensitive data.
1927
1993
  #
1928
1994
  # </note>
1929
1995
  #
@@ -1943,6 +2009,7 @@ module Aws::KMS
1943
2009
  #
1944
2010
  #
1945
2011
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2012
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1946
2013
  #
1947
2014
  # @option params [required, String] :custom_key_store_id
1948
2015
  # Enter the ID of the custom key store you want to disconnect. To find
@@ -1967,16 +2034,17 @@ module Aws::KMS
1967
2034
  end
1968
2035
 
1969
2036
  # Sets the key state of a customer master key (CMK) to enabled. This
1970
- # allows you to use the CMK for cryptographic operations. You cannot
1971
- # perform this operation on a CMK in a different AWS account.
2037
+ # allows you to use the CMK for [cryptographic operations][1]. You
2038
+ # cannot perform this operation on a CMK in a different AWS account.
1972
2039
  #
1973
2040
  # The CMK that you use for this operation must be in a compatible key
1974
2041
  # state. For details, see [How Key State Affects Use of a Customer
1975
- # Master Key][1] in the *AWS Key Management Service Developer Guide*.
2042
+ # Master Key][2] in the *AWS Key Management Service Developer Guide*.
1976
2043
  #
1977
2044
  #
1978
2045
  #
1979
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2046
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2047
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1980
2048
  #
1981
2049
  # @option params [required, String] :key_id
1982
2050
  # A unique identifier for the customer master key (CMK).
@@ -2088,11 +2156,13 @@ module Aws::KMS
2088
2156
  # identifier or database password, or other sensitive information.
2089
2157
  #
2090
2158
  # * You can use the `Encrypt` operation to move encrypted data from one
2091
- # AWS region to another. In the first region, generate a data key and
2092
- # use the plaintext key to encrypt the data. Then, in the new region,
2093
- # call the `Encrypt` method on same plaintext data key. Now, you can
2094
- # safely move the encrypted data and encrypted data key to the new
2095
- # region, and decrypt in the new region when necessary.
2159
+ # AWS Region to another. For example, in Region A, generate a data key
2160
+ # and use the plaintext key to encrypt your data. Then, in Region A,
2161
+ # use the `Encrypt` operation to encrypt the plaintext data key under
2162
+ # a CMK in Region B. Now, you can move the encrypted data and the
2163
+ # encrypted data key to Region B. When necessary, you can decrypt the
2164
+ # encrypted data key and the encrypted data entirely within in Region
2165
+ # B.
2096
2166
  #
2097
2167
  # You don't need to use the `Encrypt` operation to encrypt a data key.
2098
2168
  # The GenerateDataKey and GenerateDataKeyPair operations return a
@@ -2192,9 +2262,10 @@ module Aws::KMS
2192
2262
  #
2193
2263
  # @option params [Hash<String,String>] :encryption_context
2194
2264
  # Specifies the encryption context that will be used to encrypt the
2195
- # data. An encryption context is valid only for cryptographic operations
2196
- # with a symmetric CMK. The standard asymmetric encryption algorithms
2197
- # that AWS KMS uses do not support an encryption context.
2265
+ # data. An encryption context is valid only for [cryptographic
2266
+ # operations][1] with a symmetric CMK. The standard asymmetric
2267
+ # encryption algorithms that AWS KMS uses do not support an encryption
2268
+ # context.
2198
2269
  #
2199
2270
  # An *encryption context* is a collection of non-secret key-value pairs
2200
2271
  # that represents additional authenticated data. When you use an
@@ -2203,12 +2274,13 @@ module Aws::KMS
2203
2274
  # encryption context is optional when encrypting with a symmetric CMK,
2204
2275
  # but it is highly recommended.
2205
2276
  #
2206
- # For more information, see [Encryption Context][1] in the *AWS Key
2277
+ # For more information, see [Encryption Context][2] in the *AWS Key
2207
2278
  # Management Service Developer Guide*.
2208
2279
  #
2209
2280
  #
2210
2281
  #
2211
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2282
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2283
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2212
2284
  #
2213
2285
  # @option params [Array<String>] :grant_tokens
2214
2286
  # A list of grant tokens.
@@ -2279,28 +2351,22 @@ module Aws::KMS
2279
2351
  req.send_request(options)
2280
2352
  end
2281
2353
 
2282
- # Generates a unique symmetric data key. This operation returns a
2283
- # plaintext copy of the data key and a copy that is encrypted under a
2284
- # customer master key (CMK) that you specify. You can use the plaintext
2285
- # key to encrypt your data outside of AWS KMS and store the encrypted
2286
- # data key with the encrypted data.
2354
+ # Generates a unique symmetric data key for client-side encryption. This
2355
+ # operation returns a plaintext copy of the data key and a copy that is
2356
+ # encrypted under a customer master key (CMK) that you specify. You can
2357
+ # use the plaintext key to encrypt your data outside of AWS KMS and
2358
+ # store the encrypted data key with the encrypted data.
2287
2359
  #
2288
2360
  # `GenerateDataKey` returns a unique data key for each request. The
2289
- # bytes in the key are not related to the caller or CMK that is used to
2290
- # encrypt the data key.
2361
+ # bytes in the plaintext key are not related to the caller or the CMK.
2291
2362
  #
2292
2363
  # To generate a data key, specify the symmetric CMK that will be used to
2293
2364
  # encrypt the data key. You cannot use an asymmetric CMK to generate
2294
2365
  # data keys. To get the type of your CMK, use the DescribeKey operation.
2295
- #
2296
2366
  # You must also specify the length of the data key. Use either the
2297
2367
  # `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit
2298
2368
  # and 256-bit data keys, use the `KeySpec` parameter.
2299
2369
  #
2300
- # If the operation succeeds, the plaintext copy of the data key is in
2301
- # the `Plaintext` field of the response, and the encrypted copy of the
2302
- # data key in the `CiphertextBlob` field.
2303
- #
2304
2370
  # To get only an encrypted copy of the data key, use
2305
2371
  # GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key
2306
2372
  # pair, use the GenerateDataKeyPair or
@@ -2311,7 +2377,7 @@ module Aws::KMS
2311
2377
  # to the encryption operation. If you specify an `EncryptionContext`,
2312
2378
  # you must specify the same encryption context (a case-sensitive exact
2313
2379
  # match) when decrypting the encrypted data key. Otherwise, the request
2314
- # to decrypt fails with an InvalidCiphertextException. For more
2380
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2315
2381
  # information, see [Encryption Context][1] in the *AWS Key Management
2316
2382
  # Service Developer Guide*.
2317
2383
  #
@@ -2319,30 +2385,40 @@ module Aws::KMS
2319
2385
  # state. For details, see [How Key State Affects Use of a Customer
2320
2386
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2321
2387
  #
2388
+ # **How to use your data key**
2389
+ #
2322
2390
  # We recommend that you use the following pattern to encrypt data
2323
- # locally in your application:
2391
+ # locally in your application. You can write your own code or use a
2392
+ # client-side encryption library, such as the [AWS Encryption SDK][3],
2393
+ # the [Amazon DynamoDB Encryption Client][4], or [Amazon S3 client-side
2394
+ # encryption][5] to do these tasks for you.
2395
+ #
2396
+ # To encrypt data outside of AWS KMS:
2324
2397
  #
2325
- # 1. Use the `GenerateDataKey` operation to get a data encryption key.
2398
+ # 1. Use the `GenerateDataKey` operation to get a data key.
2326
2399
  #
2327
- # 2. Use the plaintext data key (returned in the `Plaintext` field of
2328
- # the response) to encrypt data locally, then erase the plaintext
2329
- # data key from memory.
2400
+ # 2. Use the plaintext data key (in the `Plaintext` field of the
2401
+ # response) to encrypt your data outside of AWS KMS. Then erase the
2402
+ # plaintext data key from memory.
2330
2403
  #
2331
- # 3. Store the encrypted data key (returned in the `CiphertextBlob`
2332
- # field of the response) alongside the locally encrypted data.
2404
+ # 3. Store the encrypted data key (in the `CiphertextBlob` field of the
2405
+ # response) with the encrypted data.
2333
2406
  #
2334
- # To decrypt data locally:
2407
+ # To decrypt data outside of AWS KMS:
2335
2408
  #
2336
2409
  # 1. Use the Decrypt operation to decrypt the encrypted data key. The
2337
2410
  # operation returns a plaintext copy of the data key.
2338
2411
  #
2339
- # 2. Use the plaintext data key to decrypt data locally, then erase the
2340
- # plaintext data key from memory.
2412
+ # 2. Use the plaintext data key to decrypt data outside of AWS KMS,
2413
+ # then erase the plaintext data key from memory.
2341
2414
  #
2342
2415
  #
2343
2416
  #
2344
2417
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2345
2418
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2419
+ # [3]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
2420
+ # [4]: https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/
2421
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
2346
2422
  #
2347
2423
  # @option params [required, String] :key_id
2348
2424
  # Identifies the symmetric CMK that encrypts the data key.
@@ -2480,8 +2556,8 @@ module Aws::KMS
2480
2556
  #
2481
2557
  # To generate a data key pair, you must specify a symmetric customer
2482
2558
  # master key (CMK) to encrypt the private key in a data key pair. You
2483
- # cannot use an asymmetric CMK. To get the type of your CMK, use the
2484
- # DescribeKey operation.
2559
+ # cannot use an asymmetric CMK or a CMK in a custom key store. To get
2560
+ # the type and origin of your CMK, use the DescribeKey operation.
2485
2561
  #
2486
2562
  # If you are using the data key pair to encrypt data, or for any
2487
2563
  # operation where you don't immediately need a private key, consider
@@ -2496,7 +2572,7 @@ module Aws::KMS
2496
2572
  # to the encryption operation. If you specify an `EncryptionContext`,
2497
2573
  # you must specify the same encryption context (a case-sensitive exact
2498
2574
  # match) when decrypting the encrypted data key. Otherwise, the request
2499
- # to decrypt fails with an InvalidCiphertextException. For more
2575
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2500
2576
  # information, see [Encryption Context][1] in the *AWS Key Management
2501
2577
  # Service Developer Guide*.
2502
2578
  #
@@ -2529,7 +2605,9 @@ module Aws::KMS
2529
2605
  #
2530
2606
  # @option params [required, String] :key_id
2531
2607
  # Specifies the symmetric CMK that encrypts the private key in the data
2532
- # key pair. You cannot specify an asymmetric CMKs.
2608
+ # key pair. You cannot specify an asymmetric CMK or a CMK in a custom
2609
+ # key store. To get the type and origin of your CMK, use the DescribeKey
2610
+ # operation.
2533
2611
  #
2534
2612
  # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2535
2613
  # name, or alias ARN. When using an alias name, prefix it with
@@ -2612,8 +2690,9 @@ module Aws::KMS
2612
2690
  #
2613
2691
  # To generate a data key pair, you must specify a symmetric customer
2614
2692
  # master key (CMK) to encrypt the private key in the data key pair. You
2615
- # cannot use an asymmetric CMK. To get the type of your CMK, use the
2616
- # `KeySpec` field in the DescribeKey response.
2693
+ # cannot use an asymmetric CMK or a CMK in a custom key store. To get
2694
+ # the type and origin of your CMK, use the `KeySpec` field in the
2695
+ # DescribeKey response.
2617
2696
  #
2618
2697
  # You can use the public key that `GenerateDataKeyPairWithoutPlaintext`
2619
2698
  # returns to encrypt data or verify a signature outside of AWS KMS.
@@ -2629,7 +2708,7 @@ module Aws::KMS
2629
2708
  # to the encryption operation. If you specify an `EncryptionContext`,
2630
2709
  # you must specify the same encryption context (a case-sensitive exact
2631
2710
  # match) when decrypting the encrypted data key. Otherwise, the request
2632
- # to decrypt fails with an InvalidCiphertextException. For more
2711
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2633
2712
  # information, see [Encryption Context][1] in the *AWS Key Management
2634
2713
  # Service Developer Guide*.
2635
2714
  #
@@ -2662,8 +2741,9 @@ module Aws::KMS
2662
2741
  #
2663
2742
  # @option params [required, String] :key_id
2664
2743
  # Specifies the CMK that encrypts the private key in the data key pair.
2665
- # You must specify a symmetric CMK. You cannot use an asymmetric CMK. To
2666
- # get the type of your CMK, use the DescribeKey operation.
2744
+ # You must specify a symmetric CMK. You cannot use an asymmetric CMK or
2745
+ # a CMK in a custom key store. To get the type and origin of your CMK,
2746
+ # use the DescribeKey operation.
2667
2747
  #
2668
2748
  # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2669
2749
  # name, or alias ARN. When using an alias name, prefix it with
@@ -2772,7 +2852,7 @@ module Aws::KMS
2772
2852
  # to the encryption operation. If you specify an `EncryptionContext`,
2773
2853
  # you must specify the same encryption context (a case-sensitive exact
2774
2854
  # match) when decrypting the encrypted data key. Otherwise, the request
2775
- # to decrypt fails with an InvalidCiphertextException. For more
2855
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2776
2856
  # information, see [Encryption Context][1] in the *AWS Key Management
2777
2857
  # Service Developer Guide*.
2778
2858
  #
@@ -3518,6 +3598,8 @@ module Aws::KMS
3518
3598
  # * {Types::ListAliasesResponse#next_marker #next_marker} => String
3519
3599
  # * {Types::ListAliasesResponse#truncated #truncated} => Boolean
3520
3600
  #
3601
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
3602
+ #
3521
3603
  #
3522
3604
  # @example Example: To list aliases
3523
3605
  #
@@ -3604,6 +3686,19 @@ module Aws::KMS
3604
3686
  # To perform this operation on a CMK in a different AWS account, specify
3605
3687
  # the key ARN in the value of the `KeyId` parameter.
3606
3688
  #
3689
+ # <note markdown="1"> The `GranteePrincipal` field in the `ListGrants` response usually
3690
+ # contains the user or role designated as the grantee principal in the
3691
+ # grant. However, when the grantee principal in the grant is an AWS
3692
+ # service, the `GranteePrincipal` field contains the [service
3693
+ # principal][1], which might represent several different grantee
3694
+ # principals.
3695
+ #
3696
+ # </note>
3697
+ #
3698
+ #
3699
+ #
3700
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services
3701
+ #
3607
3702
  # @option params [Integer] :limit
3608
3703
  # Use this parameter to specify the maximum number of items to return.
3609
3704
  # When this value is present, AWS KMS does not return more than the
@@ -3638,6 +3733,8 @@ module Aws::KMS
3638
3733
  # * {Types::ListGrantsResponse#next_marker #next_marker} => String
3639
3734
  # * {Types::ListGrantsResponse#truncated #truncated} => Boolean
3640
3735
  #
3736
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
3737
+ #
3641
3738
  #
3642
3739
  # @example Example: To list grants for a customer master key (CMK)
3643
3740
  #
@@ -3783,6 +3880,8 @@ module Aws::KMS
3783
3880
  # * {Types::ListKeyPoliciesResponse#next_marker #next_marker} => String
3784
3881
  # * {Types::ListKeyPoliciesResponse#truncated #truncated} => Boolean
3785
3882
  #
3883
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
3884
+ #
3786
3885
  #
3787
3886
  # @example Example: To list key policies for a customer master key (CMK)
3788
3887
  #
@@ -3847,6 +3946,8 @@ module Aws::KMS
3847
3946
  # * {Types::ListKeysResponse#next_marker #next_marker} => String
3848
3947
  # * {Types::ListKeysResponse#truncated #truncated} => Boolean
3849
3948
  #
3949
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
3950
+ #
3850
3951
  #
3851
3952
  # @example Example: To list customer master keys (CMKs)
3852
3953
  #
@@ -4227,16 +4328,16 @@ module Aws::KMS
4227
4328
  # under which data is encrypted, such as when you [manually rotate][1] a
4228
4329
  # CMK or change the CMK that protects a ciphertext. You can also use it
4229
4330
  # to reencrypt ciphertext under the same CMK, such as to change the
4230
- # encryption context of a ciphertext.
4331
+ # [encryption context][2] of a ciphertext.
4231
4332
  #
4232
4333
  # The `ReEncrypt` operation can decrypt ciphertext that was encrypted by
4233
4334
  # using an AWS KMS CMK in an AWS KMS operation, such as Encrypt or
4234
4335
  # GenerateDataKey. It can also decrypt ciphertext that was encrypted by
4235
- # using the public key of an asymmetric CMK outside of AWS KMS. However,
4236
- # it cannot decrypt ciphertext produced by other libraries, such as the
4237
- # [AWS Encryption SDK][2] or [Amazon S3 client-side encryption][3].
4238
- # These libraries return a ciphertext format that is incompatible with
4239
- # AWS KMS.
4336
+ # using the public key of an [asymmetric CMK][3] outside of AWS KMS.
4337
+ # However, it cannot decrypt ciphertext produced by other libraries,
4338
+ # such as the [AWS Encryption SDK][4] or [Amazon S3 client-side
4339
+ # encryption][5]. These libraries return a ciphertext format that is
4340
+ # incompatible with AWS KMS.
4240
4341
  #
4241
4342
  # When you use the `ReEncrypt` operation, you need to provide
4242
4343
  # information for the decrypt operation and the subsequent encrypt
@@ -4274,29 +4375,30 @@ module Aws::KMS
4274
4375
  # Unlike other AWS KMS API operations, `ReEncrypt` callers must have two
4275
4376
  # permissions:
4276
4377
  #
4277
- # * `kms:EncryptFrom` permission on the source CMK
4278
- #
4279
- # * `kms:EncryptTo` permission on the destination CMK
4378
+ # * `kms:ReEncryptFrom` permission on the source CMK
4280
4379
  #
4281
- # To permit reencryption from
4380
+ # * `kms:ReEncryptTo` permission on the destination CMK
4282
4381
  #
4283
- # or to a CMK, include the `"kms:ReEncrypt*"` permission in your [key
4284
- # policy][4]. This permission is automatically included in the key
4285
- # policy when you use the console to create a CMK. But you must include
4286
- # it manually when you create a CMK programmatically or when you use the
4287
- # PutKeyPolicy operation set a key policy.
4382
+ # To permit reencryption from or to a CMK, include the
4383
+ # `"kms:ReEncrypt*"` permission in your [key policy][6]. This permission
4384
+ # is automatically included in the key policy when you use the console
4385
+ # to create a CMK. But you must include it manually when you create a
4386
+ # CMK programmatically or when you use the PutKeyPolicy operation to set
4387
+ # a key policy.
4288
4388
  #
4289
4389
  # The CMK that you use for this operation must be in a compatible key
4290
4390
  # state. For details, see [How Key State Affects Use of a Customer
4291
- # Master Key][5] in the *AWS Key Management Service Developer Guide*.
4391
+ # Master Key][7] in the *AWS Key Management Service Developer Guide*.
4292
4392
  #
4293
4393
  #
4294
4394
  #
4295
4395
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually
4296
- # [2]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
4297
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
4298
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4299
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4396
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4397
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks
4398
+ # [4]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
4399
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
4400
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4401
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4300
4402
  #
4301
4403
  # @option params [required, String, IO] :ciphertext_blob
4302
4404
  # Ciphertext of the data to reencrypt.
@@ -5375,7 +5477,7 @@ module Aws::KMS
5375
5477
  params: params,
5376
5478
  config: config)
5377
5479
  context[:gem_name] = 'aws-sdk-kms'
5378
- context[:gem_version] = '1.29.0'
5480
+ context[:gem_version] = '1.34.1'
5379
5481
  Seahorse::Client::Request.new(handlers, context)
5380
5482
  end
5381
5483