aws-sdk-kms 1.32.0 → 1.37.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: 429d3556c6ee6342d08a47f751e42a23793659d358624e577d274986f58627ef
4
- data.tar.gz: 7c5044014048141ca656e23cb3bea94088c46cfd599e21dbbec4527fadedf0cd
3
+ metadata.gz: 1b425f87fbee0f2b2490a3920af0747250d7cd68832b77a95f67e8ef60d21f6a
4
+ data.tar.gz: 346c91d1fa460b34eb9d65c37a208e34e0dcbd811da9c4fe50b37de32f740919
5
5
  SHA512:
6
- metadata.gz: b4f4e02a1259bb6b804089bf8666ef9430be50deae769ee10d95ead6d50ab1ab11c9dc1f820b74bff70208c933edc1c169b5d30c17772957b3ae85ce9e470544
7
- data.tar.gz: ebb3e1f0e58e309e16bd5b12a2b8612533b71c2e890da215adf67df84011c9d99b1fc4def32d968f04870c623ddc04b1464e930f8d92f437e404308ef6867e5c
6
+ metadata.gz: 43008c25c340ad92a8a0a82c4a74b79b3fefc8d18bd283a5335d072ddbecd3099a9f0fe840e8c6a5291e6b21d0a9b6b9a96eb55d5812e9cc31308c1981249cbf
7
+ data.tar.gz: cf2566dd985f1c8d82b7657953da0041ac580abcadd83cdd41fa72df1ef42e57eb04eefb2987d02c605b3b4b7a75d0ef519cbb065f57543b98f36ba2461694ac
@@ -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:
@@ -42,9 +44,9 @@ require_relative 'aws-sdk-kms/customizations'
42
44
  #
43
45
  # See {Errors} for more information.
44
46
  #
45
- # @service
47
+ # @!group service
46
48
  module Aws::KMS
47
49
 
48
- GEM_VERSION = '1.32.0'
50
+ GEM_VERSION = '1.37.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
 
@@ -81,13 +85,28 @@ module Aws::KMS
81
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
82
86
  # credentials.
83
87
  #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
84
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
85
103
  # from an EC2 IMDS on an EC2 instance.
86
104
  #
87
- # * `Aws::SharedCredentials` - Used for loading credentials from a
88
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
89
107
  #
90
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
91
110
  #
92
111
  # When `:credentials` are not configured directly, the following
93
112
  # locations will be searched for credentials:
@@ -97,10 +116,10 @@ module Aws::KMS
97
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
98
117
  # * `~/.aws/credentials`
99
118
  # * `~/.aws/config`
100
- # * EC2 IMDS instance profile - When used by default, the timeouts are
101
- # very aggressive. Construct and pass an instance of
102
- # `Aws::InstanceProfileCredentails` to enable retries and extended
103
- # timeouts.
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
104
123
  #
105
124
  # @option options [required, String] :region
106
125
  # The AWS region to connect to. The configured `:region` is
@@ -161,7 +180,7 @@ module Aws::KMS
161
180
  # @option options [String] :endpoint
162
181
  # The client endpoint is normally constructed from the `:region`
163
182
  # option. You should only configure an `:endpoint` when connecting
164
- # to test endpoints. This should be a valid HTTP(S) URI.
183
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
165
184
  #
166
185
  # @option options [Integer] :endpoint_cache_max_entries (1000)
167
186
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -460,9 +479,9 @@ module Aws::KMS
460
479
  end
461
480
 
462
481
  # 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.
482
+ # (CMK). You can use an alias to identify a CMK in [cryptographic
483
+ # operations][1], such as Encrypt and GenerateDataKey. You can change
484
+ # the CMK associated with the alias at any time.
466
485
  #
467
486
  # Aliases are easier to remember than key IDs. They can also help to
468
487
  # simplify your applications. For example, if you use an alias in your
@@ -486,8 +505,8 @@ module Aws::KMS
486
505
  #
487
506
  # * You can associate an alias with any customer managed CMK in the same
488
507
  # 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].
508
+ # associate an alias with an [AWS managed CMK][2] or an [AWS owned
509
+ # CMK][3].
491
510
  #
492
511
  # * To change the CMK associated with an alias, use the UpdateAlias
493
512
  # operation. The current CMK and the new CMK must be the same type
@@ -499,7 +518,7 @@ module Aws::KMS
499
518
  # `alias/ExampleAlias`. It can contain only alphanumeric characters,
500
519
  # forward slashes (/), underscores (\_), and dashes (-). The alias
501
520
  # name cannot begin with `alias/aws/`. The `alias/aws/` prefix is
502
- # reserved for [AWS managed CMKs][1].
521
+ # reserved for [AWS managed CMKs][2].
503
522
  #
504
523
  # * The alias name must be unique within an AWS Region. However, you can
505
524
  # use the same alias name in multiple Regions of the same AWS account.
@@ -510,12 +529,12 @@ module Aws::KMS
510
529
  # and then create a new alias with the desired name.
511
530
  #
512
531
  # * 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.
532
+ # [cryptographic operations][1] and in the DescribeKey operation.
533
+ # However, you cannot use alias names or alias ARNs in API operations
534
+ # that manage CMKs, such as DisableKey or GetKeyPolicy. For
535
+ # information about the valid CMK identifiers for each AWS KMS API
536
+ # operation, see the descriptions of the `KeyId` parameter in the API
537
+ # operation documentation.
519
538
  #
520
539
  # Because an alias is not a property of a CMK, you can delete and change
521
540
  # the aliases of a CMK without affecting the CMK. Also, aliases do not
@@ -525,13 +544,14 @@ module Aws::KMS
525
544
  #
526
545
  # The CMK that you use for this operation must be in a compatible key
527
546
  # state. For details, see [How Key State Affects Use of a Customer
528
- # Master Key][3] in the *AWS Key Management Service Developer Guide*.
547
+ # Master Key][4] in the *AWS Key Management Service Developer Guide*.
529
548
  #
530
549
  #
531
550
  #
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
551
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
552
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
553
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
554
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
535
555
  #
536
556
  # @option params [required, String] :alias_name
537
557
  # Specifies the alias name. This value must begin with `alias/` followed
@@ -677,8 +697,8 @@ module Aws::KMS
677
697
  # grant are met. When setting permissions, grants are an alternative to
678
698
  # key policies.
679
699
  #
680
- # To create a grant that allows a cryptographic operation only when the
681
- # request includes a particular [encryption context][1], use the
700
+ # To create a grant that allows a [cryptographic operation][1] only when
701
+ # the request includes a particular [encryption context][2], use the
682
702
  # `Constraints` parameter. For details, see GrantConstraints.
683
703
  #
684
704
  # You can create grants on symmetric and asymmetric CMKs. However, if
@@ -693,9 +713,9 @@ module Aws::KMS
693
713
  #
694
714
  # * Grants for asymmetric CMKs cannot allow operations that are not
695
715
  # 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].
716
+ # data keys][3] or [data key pairs][4], or operations related to
717
+ # [automatic key rotation][5], [imported key material][6], or CMKs in
718
+ # [custom key stores][7].
699
719
  #
700
720
  # * Grants for asymmetric CMKs with a `KeyUsage` of `ENCRYPT_DECRYPT`
701
721
  # cannot allow the Sign or Verify operations. Grants for asymmetric
@@ -707,29 +727,30 @@ module Aws::KMS
707
727
  # asymmetric CMKs.
708
728
  #
709
729
  # For information about symmetric and asymmetric CMKs, see [Using
710
- # Symmetric and Asymmetric CMKs][7] in the *AWS Key Management Service
730
+ # Symmetric and Asymmetric CMKs][8] in the *AWS Key Management Service
711
731
  # Developer Guide*.
712
732
  #
713
733
  # To perform this operation on a CMK in a different AWS account, specify
714
734
  # 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
735
+ # information about grants, see [Grants][9] in the <i> <i>AWS Key
716
736
  # Management Service Developer Guide</i> </i>.
717
737
  #
718
738
  # The CMK that you use for this operation must be in a compatible key
719
739
  # state. For details, see [How Key State Affects Use of a Customer
720
- # Master Key][9] in the *AWS Key Management Service Developer Guide*.
740
+ # Master Key][10] in the *AWS Key Management Service Developer Guide*.
721
741
  #
722
742
  #
723
743
  #
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
744
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
745
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
746
+ # [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey
747
+ # [4]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair
748
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
749
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
750
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
751
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
752
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
753
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
733
754
  #
734
755
  # @option params [required, String] :key_id
735
756
  # The unique identifier for the customer master key (CMK) that the grant
@@ -783,15 +804,16 @@ module Aws::KMS
783
804
  # A list of operations that the grant permits.
784
805
  #
785
806
  # @option params [Types::GrantConstraints] :constraints
786
- # Allows a cryptographic operation only when the encryption context
807
+ # Allows a [cryptographic operation][1] only when the encryption context
787
808
  # matches or includes the encryption context specified in this
788
809
  # structure. For more information about encryption context, see
789
- # [Encryption Context][1] in the <i> <i>AWS Key Management Service
810
+ # [Encryption Context][2] in the <i> <i>AWS Key Management Service
790
811
  # Developer Guide</i> </i>.
791
812
  #
792
813
  #
793
814
  #
794
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
815
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
816
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
795
817
  #
796
818
  # @option params [Array<String>] :grant_tokens
797
819
  # A list of grant tokens.
@@ -1006,10 +1028,10 @@ module Aws::KMS
1006
1028
  # for a task.
1007
1029
  #
1008
1030
  # @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.
1031
+ # Determines the [cryptographic operations][1] for which you can use the
1032
+ # CMK. The default value is `ENCRYPT_DECRYPT`. This parameter is
1033
+ # required only for asymmetric CMKs. You can't change the `KeyUsage`
1034
+ # value after the CMK is created.
1013
1035
  #
1014
1036
  # Select only one valid value.
1015
1037
  #
@@ -1020,6 +1042,10 @@ module Aws::KMS
1020
1042
  #
1021
1043
  # * For asymmetric CMKs with ECC key material, specify `SIGN_VERIFY`.
1022
1044
  #
1045
+ #
1046
+ #
1047
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1048
+ #
1023
1049
  # @option params [String] :customer_master_key_spec
1024
1050
  # Specifies the type of CMK to create. The default value,
1025
1051
  # `SYMMETRIC_DEFAULT`, creates a CMK with a 256-bit symmetric key for
@@ -1305,14 +1331,14 @@ module Aws::KMS
1305
1331
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
1306
1332
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1307
1333
  #
1308
- # @option params [required, String, IO] :ciphertext_blob
1334
+ # @option params [required, String, StringIO, File] :ciphertext_blob
1309
1335
  # Ciphertext to be decrypted. The blob includes metadata.
1310
1336
  #
1311
1337
  # @option params [Hash<String,String>] :encryption_context
1312
1338
  # 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.
1339
+ # encryption context is valid only for [cryptographic operations][1]
1340
+ # with a symmetric CMK. The standard asymmetric encryption algorithms
1341
+ # that AWS KMS uses do not support an encryption context.
1316
1342
  #
1317
1343
  # An *encryption context* is a collection of non-secret key-value pairs
1318
1344
  # that represents additional authenticated data. When you use an
@@ -1321,12 +1347,13 @@ module Aws::KMS
1321
1347
  # encryption context is optional when encrypting with a symmetric CMK,
1322
1348
  # but it is highly recommended.
1323
1349
  #
1324
- # For more information, see [Encryption Context][1] in the *AWS Key
1350
+ # For more information, see [Encryption Context][2] in the *AWS Key
1325
1351
  # Management Service Developer Guide*.
1326
1352
  #
1327
1353
  #
1328
1354
  #
1329
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
1355
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1356
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
1330
1357
  #
1331
1358
  # @option params [Array<String>] :grant_tokens
1332
1359
  # A list of grant tokens.
@@ -1479,13 +1506,13 @@ module Aws::KMS
1479
1506
  # The custom key store that you delete cannot contain any AWS KMS
1480
1507
  # [customer master keys (CMKs)][2]. Before deleting the key store,
1481
1508
  # 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.
1509
+ # store for any [cryptographic operations][3]. Then, use
1510
+ # ScheduleKeyDeletion to delete the AWS KMS customer master keys (CMKs)
1511
+ # from the key store. When the scheduled waiting period expires, the
1512
+ # `ScheduleKeyDeletion` operation deletes the CMKs. Then it makes a best
1513
+ # effort to delete the key material from the associated cluster.
1514
+ # However, you might need to manually [delete the orphaned key
1515
+ # material][4] from the cluster and its backups.
1489
1516
  #
1490
1517
  # After all CMKs are deleted from AWS KMS, use DisconnectCustomKeyStore
1491
1518
  # to disconnect the key store from AWS KMS. Then, you can delete the
@@ -1508,7 +1535,8 @@ module Aws::KMS
1508
1535
  #
1509
1536
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1510
1537
  # [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
1538
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1539
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
1512
1540
  #
1513
1541
  # @option params [required, String] :custom_key_store_id
1514
1542
  # Enter the ID of the custom key store you want to delete. To find the
@@ -1848,20 +1876,21 @@ module Aws::KMS
1848
1876
  end
1849
1877
 
1850
1878
  # 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.
1879
+ # preventing its use for [cryptographic operations][1]. You cannot
1880
+ # perform this operation on a CMK in a different AWS account.
1853
1881
  #
1854
1882
  # 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>
1883
+ # [How Key State Affects the Use of a Customer Master Key][2] in the <i>
1856
1884
  # <i>AWS Key Management Service Developer Guide</i> </i>.
1857
1885
  #
1858
1886
  # The CMK that you use for this operation must be in a compatible key
1859
1887
  # state. For details, see [How Key State Affects Use of a Customer
1860
- # Master Key][1] in the *AWS Key Management Service Developer Guide*.
1888
+ # Master Key][2] in the *AWS Key Management Service Developer Guide*.
1861
1889
  #
1862
1890
  #
1863
1891
  #
1864
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1892
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1893
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1865
1894
  #
1866
1895
  # @option params [required, String] :key_id
1867
1896
  # A unique identifier for the customer master key (CMK).
@@ -1976,8 +2005,8 @@ module Aws::KMS
1976
2005
  #
1977
2006
  # <note markdown="1"> While a custom key store is disconnected, all attempts to create
1978
2007
  # 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.
2008
+ # CMKs in [cryptographic operations][2] will fail. This action can
2009
+ # prevent users from storing and accessing sensitive data.
1981
2010
  #
1982
2011
  # </note>
1983
2012
  #
@@ -1997,6 +2026,7 @@ module Aws::KMS
1997
2026
  #
1998
2027
  #
1999
2028
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2029
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2000
2030
  #
2001
2031
  # @option params [required, String] :custom_key_store_id
2002
2032
  # Enter the ID of the custom key store you want to disconnect. To find
@@ -2021,16 +2051,17 @@ module Aws::KMS
2021
2051
  end
2022
2052
 
2023
2053
  # 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.
2054
+ # allows you to use the CMK for [cryptographic operations][1]. You
2055
+ # cannot perform this operation on a CMK in a different AWS account.
2026
2056
  #
2027
2057
  # The CMK that you use for this operation must be in a compatible key
2028
2058
  # state. For details, see [How Key State Affects Use of a Customer
2029
- # Master Key][1] in the *AWS Key Management Service Developer Guide*.
2059
+ # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2030
2060
  #
2031
2061
  #
2032
2062
  #
2033
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2063
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2064
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2034
2065
  #
2035
2066
  # @option params [required, String] :key_id
2036
2067
  # A unique identifier for the customer master key (CMK).
@@ -2142,11 +2173,13 @@ module Aws::KMS
2142
2173
  # identifier or database password, or other sensitive information.
2143
2174
  #
2144
2175
  # * 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.
2176
+ # AWS Region to another. For example, in Region A, generate a data key
2177
+ # and use the plaintext key to encrypt your data. Then, in Region A,
2178
+ # use the `Encrypt` operation to encrypt the plaintext data key under
2179
+ # a CMK in Region B. Now, you can move the encrypted data and the
2180
+ # encrypted data key to Region B. When necessary, you can decrypt the
2181
+ # encrypted data key and the encrypted data entirely within in Region
2182
+ # B.
2150
2183
  #
2151
2184
  # You don't need to use the `Encrypt` operation to encrypt a data key.
2152
2185
  # The GenerateDataKey and GenerateDataKeyPair operations return a
@@ -2241,14 +2274,15 @@ module Aws::KMS
2241
2274
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
2242
2275
  # To get the alias name and alias ARN, use ListAliases.
2243
2276
  #
2244
- # @option params [required, String, IO] :plaintext
2277
+ # @option params [required, String, StringIO, File] :plaintext
2245
2278
  # Data to be encrypted.
2246
2279
  #
2247
2280
  # @option params [Hash<String,String>] :encryption_context
2248
2281
  # 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.
2282
+ # data. An encryption context is valid only for [cryptographic
2283
+ # operations][1] with a symmetric CMK. The standard asymmetric
2284
+ # encryption algorithms that AWS KMS uses do not support an encryption
2285
+ # context.
2252
2286
  #
2253
2287
  # An *encryption context* is a collection of non-secret key-value pairs
2254
2288
  # that represents additional authenticated data. When you use an
@@ -2257,12 +2291,13 @@ module Aws::KMS
2257
2291
  # encryption context is optional when encrypting with a symmetric CMK,
2258
2292
  # but it is highly recommended.
2259
2293
  #
2260
- # For more information, see [Encryption Context][1] in the *AWS Key
2294
+ # For more information, see [Encryption Context][2] in the *AWS Key
2261
2295
  # Management Service Developer Guide*.
2262
2296
  #
2263
2297
  #
2264
2298
  #
2265
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2299
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2300
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2266
2301
  #
2267
2302
  # @option params [Array<String>] :grant_tokens
2268
2303
  # A list of grant tokens.
@@ -2333,28 +2368,22 @@ module Aws::KMS
2333
2368
  req.send_request(options)
2334
2369
  end
2335
2370
 
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.
2371
+ # Generates a unique symmetric data key for client-side encryption. This
2372
+ # operation returns a plaintext copy of the data key and a copy that is
2373
+ # encrypted under a customer master key (CMK) that you specify. You can
2374
+ # use the plaintext key to encrypt your data outside of AWS KMS and
2375
+ # store the encrypted data key with the encrypted data.
2341
2376
  #
2342
2377
  # `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.
2378
+ # bytes in the plaintext key are not related to the caller or the CMK.
2345
2379
  #
2346
2380
  # To generate a data key, specify the symmetric CMK that will be used to
2347
2381
  # encrypt the data key. You cannot use an asymmetric CMK to generate
2348
2382
  # data keys. To get the type of your CMK, use the DescribeKey operation.
2349
- #
2350
2383
  # You must also specify the length of the data key. Use either the
2351
2384
  # `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit
2352
2385
  # and 256-bit data keys, use the `KeySpec` parameter.
2353
2386
  #
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
2387
  # To get only an encrypted copy of the data key, use
2359
2388
  # GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key
2360
2389
  # pair, use the GenerateDataKeyPair or
@@ -2365,7 +2394,7 @@ module Aws::KMS
2365
2394
  # to the encryption operation. If you specify an `EncryptionContext`,
2366
2395
  # you must specify the same encryption context (a case-sensitive exact
2367
2396
  # match) when decrypting the encrypted data key. Otherwise, the request
2368
- # to decrypt fails with an InvalidCiphertextException. For more
2397
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2369
2398
  # information, see [Encryption Context][1] in the *AWS Key Management
2370
2399
  # Service Developer Guide*.
2371
2400
  #
@@ -2373,30 +2402,40 @@ module Aws::KMS
2373
2402
  # state. For details, see [How Key State Affects Use of a Customer
2374
2403
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2375
2404
  #
2405
+ # **How to use your data key**
2406
+ #
2376
2407
  # We recommend that you use the following pattern to encrypt data
2377
- # locally in your application:
2408
+ # locally in your application. You can write your own code or use a
2409
+ # client-side encryption library, such as the [AWS Encryption SDK][3],
2410
+ # the [Amazon DynamoDB Encryption Client][4], or [Amazon S3 client-side
2411
+ # encryption][5] to do these tasks for you.
2378
2412
  #
2379
- # 1. Use the `GenerateDataKey` operation to get a data encryption key.
2413
+ # To encrypt data outside of AWS KMS:
2380
2414
  #
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.
2415
+ # 1. Use the `GenerateDataKey` operation to get a data key.
2416
+ #
2417
+ # 2. Use the plaintext data key (in the `Plaintext` field of the
2418
+ # response) to encrypt your data outside of AWS KMS. Then erase the
2419
+ # plaintext data key from memory.
2384
2420
  #
2385
- # 3. Store the encrypted data key (returned in the `CiphertextBlob`
2386
- # field of the response) alongside the locally encrypted data.
2421
+ # 3. Store the encrypted data key (in the `CiphertextBlob` field of the
2422
+ # response) with the encrypted data.
2387
2423
  #
2388
- # To decrypt data locally:
2424
+ # To decrypt data outside of AWS KMS:
2389
2425
  #
2390
2426
  # 1. Use the Decrypt operation to decrypt the encrypted data key. The
2391
2427
  # operation returns a plaintext copy of the data key.
2392
2428
  #
2393
- # 2. Use the plaintext data key to decrypt data locally, then erase the
2394
- # plaintext data key from memory.
2429
+ # 2. Use the plaintext data key to decrypt data outside of AWS KMS,
2430
+ # then erase the plaintext data key from memory.
2395
2431
  #
2396
2432
  #
2397
2433
  #
2398
2434
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2399
2435
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2436
+ # [3]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
2437
+ # [4]: https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/
2438
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
2400
2439
  #
2401
2440
  # @option params [required, String] :key_id
2402
2441
  # Identifies the symmetric CMK that encrypts the data key.
@@ -2534,8 +2573,8 @@ module Aws::KMS
2534
2573
  #
2535
2574
  # To generate a data key pair, you must specify a symmetric customer
2536
2575
  # 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.
2576
+ # cannot use an asymmetric CMK or a CMK in a custom key store. To get
2577
+ # the type and origin of your CMK, use the DescribeKey operation.
2539
2578
  #
2540
2579
  # If you are using the data key pair to encrypt data, or for any
2541
2580
  # operation where you don't immediately need a private key, consider
@@ -2550,7 +2589,7 @@ module Aws::KMS
2550
2589
  # to the encryption operation. If you specify an `EncryptionContext`,
2551
2590
  # you must specify the same encryption context (a case-sensitive exact
2552
2591
  # match) when decrypting the encrypted data key. Otherwise, the request
2553
- # to decrypt fails with an InvalidCiphertextException. For more
2592
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2554
2593
  # information, see [Encryption Context][1] in the *AWS Key Management
2555
2594
  # Service Developer Guide*.
2556
2595
  #
@@ -2583,7 +2622,9 @@ module Aws::KMS
2583
2622
  #
2584
2623
  # @option params [required, String] :key_id
2585
2624
  # Specifies the symmetric CMK that encrypts the private key in the data
2586
- # key pair. You cannot specify an asymmetric CMKs.
2625
+ # key pair. You cannot specify an asymmetric CMK or a CMK in a custom
2626
+ # key store. To get the type and origin of your CMK, use the DescribeKey
2627
+ # operation.
2587
2628
  #
2588
2629
  # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2589
2630
  # name, or alias ARN. When using an alias name, prefix it with
@@ -2666,8 +2707,9 @@ module Aws::KMS
2666
2707
  #
2667
2708
  # To generate a data key pair, you must specify a symmetric customer
2668
2709
  # 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.
2710
+ # cannot use an asymmetric CMK or a CMK in a custom key store. To get
2711
+ # the type and origin of your CMK, use the `KeySpec` field in the
2712
+ # DescribeKey response.
2671
2713
  #
2672
2714
  # You can use the public key that `GenerateDataKeyPairWithoutPlaintext`
2673
2715
  # returns to encrypt data or verify a signature outside of AWS KMS.
@@ -2683,7 +2725,7 @@ module Aws::KMS
2683
2725
  # to the encryption operation. If you specify an `EncryptionContext`,
2684
2726
  # you must specify the same encryption context (a case-sensitive exact
2685
2727
  # match) when decrypting the encrypted data key. Otherwise, the request
2686
- # to decrypt fails with an InvalidCiphertextException. For more
2728
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2687
2729
  # information, see [Encryption Context][1] in the *AWS Key Management
2688
2730
  # Service Developer Guide*.
2689
2731
  #
@@ -2716,8 +2758,9 @@ module Aws::KMS
2716
2758
  #
2717
2759
  # @option params [required, String] :key_id
2718
2760
  # 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.
2761
+ # You must specify a symmetric CMK. You cannot use an asymmetric CMK or
2762
+ # a CMK in a custom key store. To get the type and origin of your CMK,
2763
+ # use the DescribeKey operation.
2721
2764
  #
2722
2765
  # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2723
2766
  # name, or alias ARN. When using an alias name, prefix it with
@@ -2826,7 +2869,7 @@ module Aws::KMS
2826
2869
  # to the encryption operation. If you specify an `EncryptionContext`,
2827
2870
  # you must specify the same encryption context (a case-sensitive exact
2828
2871
  # match) when decrypting the encrypted data key. Otherwise, the request
2829
- # to decrypt fails with an InvalidCiphertextException. For more
2872
+ # to decrypt fails with an `InvalidCiphertextException`. For more
2830
2873
  # information, see [Encryption Context][1] in the *AWS Key Management
2831
2874
  # Service Developer Guide*.
2832
2875
  #
@@ -3463,12 +3506,12 @@ module Aws::KMS
3463
3506
  #
3464
3507
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
3465
3508
  #
3466
- # @option params [required, String, IO] :import_token
3509
+ # @option params [required, String, StringIO, File] :import_token
3467
3510
  # The import token that you received in the response to a previous
3468
3511
  # GetParametersForImport request. It must be from the same response that
3469
3512
  # contained the public key that you used to encrypt the key material.
3470
3513
  #
3471
- # @option params [required, String, IO] :encrypted_key_material
3514
+ # @option params [required, String, StringIO, File] :encrypted_key_material
3472
3515
  # The encrypted key material to import. The key material must be
3473
3516
  # encrypted with the public wrapping key that GetParametersForImport
3474
3517
  # returned, using the wrapping algorithm that you specified in the same
@@ -3660,6 +3703,19 @@ module Aws::KMS
3660
3703
  # To perform this operation on a CMK in a different AWS account, specify
3661
3704
  # the key ARN in the value of the `KeyId` parameter.
3662
3705
  #
3706
+ # <note markdown="1"> The `GranteePrincipal` field in the `ListGrants` response usually
3707
+ # contains the user or role designated as the grantee principal in the
3708
+ # grant. However, when the grantee principal in the grant is an AWS
3709
+ # service, the `GranteePrincipal` field contains the [service
3710
+ # principal][1], which might represent several different grantee
3711
+ # principals.
3712
+ #
3713
+ # </note>
3714
+ #
3715
+ #
3716
+ #
3717
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services
3718
+ #
3663
3719
  # @option params [Integer] :limit
3664
3720
  # Use this parameter to specify the maximum number of items to return.
3665
3721
  # When this value is present, AWS KMS does not return more than the
@@ -4289,16 +4345,16 @@ module Aws::KMS
4289
4345
  # under which data is encrypted, such as when you [manually rotate][1] a
4290
4346
  # CMK or change the CMK that protects a ciphertext. You can also use it
4291
4347
  # to reencrypt ciphertext under the same CMK, such as to change the
4292
- # encryption context of a ciphertext.
4348
+ # [encryption context][2] of a ciphertext.
4293
4349
  #
4294
4350
  # The `ReEncrypt` operation can decrypt ciphertext that was encrypted by
4295
4351
  # using an AWS KMS CMK in an AWS KMS operation, such as Encrypt or
4296
4352
  # 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.
4353
+ # using the public key of an [asymmetric CMK][3] outside of AWS KMS.
4354
+ # However, it cannot decrypt ciphertext produced by other libraries,
4355
+ # such as the [AWS Encryption SDK][4] or [Amazon S3 client-side
4356
+ # encryption][5]. These libraries return a ciphertext format that is
4357
+ # incompatible with AWS KMS.
4302
4358
  #
4303
4359
  # When you use the `ReEncrypt` operation, you need to provide
4304
4360
  # information for the decrypt operation and the subsequent encrypt
@@ -4336,31 +4392,32 @@ module Aws::KMS
4336
4392
  # Unlike other AWS KMS API operations, `ReEncrypt` callers must have two
4337
4393
  # permissions:
4338
4394
  #
4339
- # * `kms:EncryptFrom` permission on the source CMK
4340
- #
4341
- # * `kms:EncryptTo` permission on the destination CMK
4395
+ # * `kms:ReEncryptFrom` permission on the source CMK
4342
4396
  #
4343
- # To permit reencryption from
4397
+ # * `kms:ReEncryptTo` permission on the destination CMK
4344
4398
  #
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.
4399
+ # To permit reencryption from or to a CMK, include the
4400
+ # `"kms:ReEncrypt*"` permission in your [key policy][6]. This permission
4401
+ # is automatically included in the key policy when you use the console
4402
+ # to create a CMK. But you must include it manually when you create a
4403
+ # CMK programmatically or when you use the PutKeyPolicy operation to set
4404
+ # a key policy.
4350
4405
  #
4351
4406
  # The CMK that you use for this operation must be in a compatible key
4352
4407
  # state. For details, see [How Key State Affects Use of a Customer
4353
- # Master Key][5] in the *AWS Key Management Service Developer Guide*.
4408
+ # Master Key][7] in the *AWS Key Management Service Developer Guide*.
4354
4409
  #
4355
4410
  #
4356
4411
  #
4357
4412
  # [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
4413
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4414
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks
4415
+ # [4]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
4416
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
4417
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4418
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4362
4419
  #
4363
- # @option params [required, String, IO] :ciphertext_blob
4420
+ # @option params [required, String, StringIO, File] :ciphertext_blob
4364
4421
  # Ciphertext of the data to reencrypt.
4365
4422
  #
4366
4423
  # @option params [Hash<String,String>] :source_encryption_context
@@ -4844,7 +4901,7 @@ module Aws::KMS
4844
4901
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
4845
4902
  # To get the alias name and alias ARN, use ListAliases.
4846
4903
  #
4847
- # @option params [required, String, IO] :message
4904
+ # @option params [required, String, StringIO, File] :message
4848
4905
  # Specifies the message or message digest to sign. Messages can be
4849
4906
  # 0-4096 bytes. To sign a larger message, provide the message digest.
4850
4907
  #
@@ -5357,7 +5414,7 @@ module Aws::KMS
5357
5414
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
5358
5415
  # To get the alias name and alias ARN, use ListAliases.
5359
5416
  #
5360
- # @option params [required, String, IO] :message
5417
+ # @option params [required, String, StringIO, File] :message
5361
5418
  # Specifies the message that was signed. You can submit a raw message of
5362
5419
  # up to 4096 bytes, or a hash digest of the message. If you submit a
5363
5420
  # digest, use the `MessageType` parameter with a value of `DIGEST`.
@@ -5375,7 +5432,7 @@ module Aws::KMS
5375
5432
  # is a message digest. If you use the `DIGEST` value with a raw message,
5376
5433
  # the security of the verification operation can be compromised.
5377
5434
  #
5378
- # @option params [required, String, IO] :signature
5435
+ # @option params [required, String, StringIO, File] :signature
5379
5436
  # The signature that the `Sign` operation generated.
5380
5437
  #
5381
5438
  # @option params [required, String] :signing_algorithm
@@ -5437,7 +5494,7 @@ module Aws::KMS
5437
5494
  params: params,
5438
5495
  config: config)
5439
5496
  context[:gem_name] = 'aws-sdk-kms'
5440
- context[:gem_version] = '1.32.0'
5497
+ context[:gem_version] = '1.37.0'
5441
5498
  Seahorse::Client::Request.new(handlers, context)
5442
5499
  end
5443
5500