aws-sdk-kms 1.32.0 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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