aws-sdk-kms 1.53.0 → 1.56.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 +4 -4
- data/CHANGELOG.md +15 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-kms/client.rb +1032 -541
- data/lib/aws-sdk-kms/client_api.rb +67 -0
- data/lib/aws-sdk-kms/errors.rb +16 -0
- data/lib/aws-sdk-kms/types.rb +468 -186
- data/lib/aws-sdk-kms.rb +1 -1
- metadata +4 -4
data/lib/aws-sdk-kms/client.rb
CHANGED
@@ -27,7 +27,9 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
|
|
27
27
|
require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
|
28
28
|
require 'aws-sdk-core/plugins/transfer_encoding.rb'
|
29
29
|
require 'aws-sdk-core/plugins/http_checksum.rb'
|
30
|
+
require 'aws-sdk-core/plugins/checksum_algorithm.rb'
|
30
31
|
require 'aws-sdk-core/plugins/defaults_mode.rb'
|
32
|
+
require 'aws-sdk-core/plugins/recursion_detection.rb'
|
31
33
|
require 'aws-sdk-core/plugins/signature_v4.rb'
|
32
34
|
require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
|
33
35
|
|
@@ -74,7 +76,9 @@ module Aws::KMS
|
|
74
76
|
add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
|
75
77
|
add_plugin(Aws::Plugins::TransferEncoding)
|
76
78
|
add_plugin(Aws::Plugins::HttpChecksum)
|
79
|
+
add_plugin(Aws::Plugins::ChecksumAlgorithm)
|
77
80
|
add_plugin(Aws::Plugins::DefaultsMode)
|
81
|
+
add_plugin(Aws::Plugins::RecursionDetection)
|
78
82
|
add_plugin(Aws::Plugins::SignatureV4)
|
79
83
|
add_plugin(Aws::Plugins::Protocols::JsonRpc)
|
80
84
|
|
@@ -366,8 +370,8 @@ module Aws::KMS
|
|
366
370
|
# Developer Guide*.
|
367
371
|
#
|
368
372
|
# The KMS key that you use for this operation must be in a compatible
|
369
|
-
# key state. For details, see [Key
|
370
|
-
#
|
373
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
374
|
+
# Management Service Developer Guide*.
|
371
375
|
#
|
372
376
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
373
377
|
# key in a different Amazon Web Services account.
|
@@ -540,8 +544,8 @@ module Aws::KMS
|
|
540
544
|
# Creates a friendly name for a KMS key.
|
541
545
|
#
|
542
546
|
# <note markdown="1"> Adding, deleting, or updating an alias can allow or deny permission to
|
543
|
-
# the KMS key. For details, see [
|
544
|
-
#
|
547
|
+
# the KMS key. For details, see [ABAC in KMS][1] in the *Key Management
|
548
|
+
# Service Developer Guide*.
|
545
549
|
#
|
546
550
|
# </note>
|
547
551
|
#
|
@@ -566,8 +570,8 @@ module Aws::KMS
|
|
566
570
|
# created, use the ListAliases operation.
|
567
571
|
#
|
568
572
|
# The KMS key that you use for this operation must be in a compatible
|
569
|
-
# key state. For details, see [Key
|
570
|
-
#
|
573
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
574
|
+
# Management Service Developer Guide*.
|
571
575
|
#
|
572
576
|
# **Cross-account use**\: No. You cannot perform this operation on an
|
573
577
|
# alias in a different Amazon Web Services account.
|
@@ -808,7 +812,7 @@ module Aws::KMS
|
|
808
812
|
# and delete it without changing your key policies or IAM policies.
|
809
813
|
#
|
810
814
|
# For detailed information about grants, including grant terminology,
|
811
|
-
# see [
|
815
|
+
# see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
|
812
816
|
# Guide</i> </i>. For examples of working with grants in several
|
813
817
|
# programming languages, see [Programming grants][2].
|
814
818
|
#
|
@@ -831,8 +835,8 @@ module Aws::KMS
|
|
831
835
|
# the ListGrants or ListRetirableGrants operations.
|
832
836
|
#
|
833
837
|
# The KMS key that you use for this operation must be in a compatible
|
834
|
-
# key state. For details, see [Key
|
835
|
-
#
|
838
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
839
|
+
# Management Service Developer Guide*.
|
836
840
|
#
|
837
841
|
# **Cross-account use**\: Yes. To perform this operation on a KMS key in
|
838
842
|
# a different Amazon Web Services account, specify the key ARN in the
|
@@ -917,12 +921,13 @@ module Aws::KMS
|
|
917
921
|
# @option params [required, Array<String>] :operations
|
918
922
|
# A list of operations that the grant permits.
|
919
923
|
#
|
920
|
-
#
|
921
|
-
#
|
922
|
-
#
|
923
|
-
#
|
924
|
-
#
|
925
|
-
#
|
924
|
+
# This list must include only operations that are permitted in a grant.
|
925
|
+
# Also, the operation must be supported on the KMS key. For example, you
|
926
|
+
# cannot create a grant for a symmetric encryption KMS key that allows
|
927
|
+
# the Sign operation, or a grant for an asymmetric KMS key that allows
|
928
|
+
# the GenerateDataKey operation. If you try, KMS returns a
|
929
|
+
# `ValidationError` exception. For details, see [Grant operations][1] in
|
930
|
+
# the *Key Management Service Developer Guide*.
|
926
931
|
#
|
927
932
|
#
|
928
933
|
#
|
@@ -934,27 +939,38 @@ module Aws::KMS
|
|
934
939
|
# KMS supports the `EncryptionContextEquals` and
|
935
940
|
# `EncryptionContextSubset` grant constraints. Each constraint value can
|
936
941
|
# include up to 8 encryption context pairs. The encryption context value
|
937
|
-
# in each constraint cannot exceed 384 characters.
|
938
|
-
#
|
939
|
-
# These grant constraints allow the permissions in the grant only when
|
940
|
-
# the encryption context in the request matches
|
941
|
-
# (`EncryptionContextEquals`) or includes (`EncryptionContextSubset`)
|
942
|
-
# the encryption context specified in this structure. For information
|
943
|
-
# about grant constraints, see [Using grant constraints][1] in the *Key
|
942
|
+
# in each constraint cannot exceed 384 characters. For information about
|
943
|
+
# grant constraints, see [Using grant constraints][1] in the *Key
|
944
944
|
# Management Service Developer Guide*. For more information about
|
945
|
-
# encryption context, see [Encryption
|
945
|
+
# encryption context, see [Encryption context][2] in the <i> <i>Key
|
946
946
|
# Management Service Developer Guide</i> </i>.
|
947
947
|
#
|
948
|
-
# The encryption context grant constraints
|
949
|
-
#
|
950
|
-
#
|
951
|
-
#
|
952
|
-
#
|
948
|
+
# The encryption context grant constraints allow the permissions in the
|
949
|
+
# grant only when the encryption context in the request matches
|
950
|
+
# (`EncryptionContextEquals`) or includes (`EncryptionContextSubset`)
|
951
|
+
# the encryption context specified in this structure.
|
952
|
+
#
|
953
|
+
# The encryption context grant constraints are supported only on [grant
|
954
|
+
# operations][3] that include an `EncryptionContext` parameter, such as
|
955
|
+
# cryptographic operations on symmetric encryption KMS keys. Grants with
|
956
|
+
# grant constraints can include the DescribeKey and RetireGrant
|
957
|
+
# operations, but the constraint doesn't apply to these operations. If
|
958
|
+
# a grant with a grant constraint includes the `CreateGrant` operation,
|
959
|
+
# the constraint requires that any grants created with the `CreateGrant`
|
960
|
+
# permission have an equally strict or stricter encryption context
|
961
|
+
# constraint.
|
962
|
+
#
|
963
|
+
# You cannot use an encryption context grant constraint for
|
964
|
+
# cryptographic operations with asymmetric KMS keys or HMAC KMS keys.
|
965
|
+
# These keys don't support an encryption context.
|
966
|
+
#
|
967
|
+
#
|
953
968
|
#
|
954
969
|
#
|
955
970
|
#
|
956
971
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints
|
957
972
|
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
|
973
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
|
958
974
|
#
|
959
975
|
# @option params [Array<String>] :grant_tokens
|
960
976
|
# A list of grant tokens.
|
@@ -1016,7 +1032,7 @@ module Aws::KMS
|
|
1016
1032
|
# key_id: "KeyIdType", # required
|
1017
1033
|
# grantee_principal: "PrincipalIdType", # required
|
1018
1034
|
# retiring_principal: "PrincipalIdType",
|
1019
|
-
# operations: ["Decrypt"], # required, accepts Decrypt, Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintext, ReEncryptFrom, ReEncryptTo, Sign, Verify, GetPublicKey, CreateGrant, RetireGrant, DescribeKey, GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext
|
1035
|
+
# operations: ["Decrypt"], # required, accepts Decrypt, Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintext, ReEncryptFrom, ReEncryptTo, Sign, Verify, GetPublicKey, CreateGrant, RetireGrant, DescribeKey, GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, GenerateMac, VerifyMac
|
1020
1036
|
# constraints: {
|
1021
1037
|
# encryption_context_subset: {
|
1022
1038
|
# "EncryptionContextKey" => "EncryptionContextValue",
|
@@ -1046,35 +1062,35 @@ module Aws::KMS
|
|
1046
1062
|
# Creates a unique customer managed [KMS key][1] in your Amazon Web
|
1047
1063
|
# Services account and Region.
|
1048
1064
|
#
|
1065
|
+
# In addition to the required parameters, you can use the optional
|
1066
|
+
# parameters to specify a key policy, description, tags, and other
|
1067
|
+
# useful elements for any key type.
|
1068
|
+
#
|
1049
1069
|
# <note markdown="1"> KMS is replacing the term *customer master key (CMK)* with *KMS key*
|
1050
1070
|
# and *KMS key*. The concept has not changed. To prevent breaking
|
1051
1071
|
# changes, KMS is keeping some variations of this term.
|
1052
1072
|
#
|
1053
1073
|
# </note>
|
1054
1074
|
#
|
1055
|
-
#
|
1056
|
-
#
|
1075
|
+
# To create different types of KMS keys, use the following guidance:
|
1076
|
+
#
|
1077
|
+
# Symmetric encryption KMS key
|
1057
1078
|
#
|
1058
|
-
#
|
1059
|
-
#
|
1060
|
-
#
|
1061
|
-
#
|
1062
|
-
#
|
1079
|
+
# : To create a symmetric encryption KMS key, you aren't required to
|
1080
|
+
# specify any parameters. The default value for `KeySpec`,
|
1081
|
+
# `SYMMETRIC_DEFAULT`, and the default value for `KeyUsage`,
|
1082
|
+
# `ENCRYPT_DECRYPT`, create a symmetric encryption KMS key.
|
1083
|
+
#
|
1084
|
+
# If you need a key for basic encryption and decryption or you are
|
1085
|
+
# creating a KMS key to protect your resources in an Amazon Web
|
1086
|
+
# Services service, create a symmetric encryption KMS key. The key
|
1087
|
+
# material in a symmetric encryption key never leaves KMS unencrypted.
|
1088
|
+
# You can use a symmetric encryption KMS key to encrypt and decrypt
|
1089
|
+
# data up to 4,096 bytes, but they are typically used to generate data
|
1090
|
+
# keys and data keys pairs. For details, see GenerateDataKey and
|
1063
1091
|
# GenerateDataKeyPair.
|
1064
1092
|
#
|
1065
|
-
# * **Asymmetric KMS keys** can contain an RSA key pair or an Elliptic
|
1066
|
-
# Curve (ECC) key pair. The private key in an asymmetric KMS key never
|
1067
|
-
# leaves KMS unencrypted. However, you can use the GetPublicKey
|
1068
|
-
# operation to download the public key so it can be used outside of
|
1069
|
-
# KMS. KMS keys with RSA key pairs can be used to encrypt or decrypt
|
1070
|
-
# data or sign and verify messages (but not both). KMS keys with ECC
|
1071
|
-
# key pairs can be used only to sign and verify messages.
|
1072
|
-
#
|
1073
|
-
# For information about symmetric and asymmetric KMS keys, see [Using
|
1074
|
-
# Symmetric and Asymmetric KMS keys][4] in the *Key Management Service
|
1075
|
-
# Developer Guide*.
|
1076
1093
|
#
|
1077
|
-
# To create different types of KMS keys, use the following guidance:
|
1078
1094
|
#
|
1079
1095
|
# Asymmetric KMS keys
|
1080
1096
|
#
|
@@ -1084,14 +1100,37 @@ module Aws::KMS
|
|
1084
1100
|
# to encrypt and decrypt or sign and verify. You can't change these
|
1085
1101
|
# properties after the KMS key is created.
|
1086
1102
|
#
|
1103
|
+
# Asymmetric KMS keys contain an RSA key pair or an Elliptic Curve
|
1104
|
+
# (ECC) key pair. The private key in an asymmetric KMS key never
|
1105
|
+
# leaves AWS KMS unencrypted. However, you can use the GetPublicKey
|
1106
|
+
# operation to download the public key so it can be used outside of
|
1107
|
+
# AWS KMS. KMS keys with RSA key pairs can be used to encrypt or
|
1108
|
+
# decrypt data or sign and verify messages (but not both). KMS keys
|
1109
|
+
# with ECC key pairs can be used only to sign and verify messages. For
|
1110
|
+
# information about asymmetric KMS keys, see [Asymmetric KMS keys][2]
|
1111
|
+
# in the *Key Management Service Developer Guide*.
|
1087
1112
|
#
|
1088
1113
|
#
|
1089
|
-
# Symmetric KMS keys
|
1090
1114
|
#
|
1091
|
-
#
|
1092
|
-
#
|
1093
|
-
#
|
1094
|
-
#
|
1115
|
+
# HMAC KMS key
|
1116
|
+
#
|
1117
|
+
# : To create an HMAC KMS key, set the `KeySpec` parameter to a key spec
|
1118
|
+
# value for HMAC KMS keys. Then set the `KeyUsage` parameter to
|
1119
|
+
# `GENERATE_VERIFY_MAC`. You must set the key usage even though
|
1120
|
+
# `GENERATE_VERIFY_MAC` is the only valid key usage value for HMAC KMS
|
1121
|
+
# keys. You can't change these properties after the KMS key is
|
1122
|
+
# created.
|
1123
|
+
#
|
1124
|
+
# HMAC KMS keys are symmetric keys that never leave KMS unencrypted.
|
1125
|
+
# You can use HMAC keys to generate (GenerateMac) and verify
|
1126
|
+
# (VerifyMac) HMAC codes for messages up to 4096 bytes.
|
1127
|
+
#
|
1128
|
+
# HMAC KMS keys are not supported in all Amazon Web Services Regions.
|
1129
|
+
# If you try to create an HMAC KMS key in an Amazon Web Services
|
1130
|
+
# Region in which HMAC keys are not supported, the `CreateKey`
|
1131
|
+
# operation returns an `UnsupportedOperationException`. For a list of
|
1132
|
+
# Regions in which HMAC KMS keys are supported, see [HMAC keys in
|
1133
|
+
# KMS][3] in the *Key Management Service Developer Guide*.
|
1095
1134
|
#
|
1096
1135
|
#
|
1097
1136
|
#
|
@@ -1106,6 +1145,12 @@ module Aws::KMS
|
|
1106
1145
|
# operation. To change a replica key to a primary key, and its primary
|
1107
1146
|
# key to a replica key, use the UpdatePrimaryRegion operation.
|
1108
1147
|
#
|
1148
|
+
# You can create multi-Region KMS keys for all supported KMS key
|
1149
|
+
# types: symmetric encryption KMS keys, HMAC KMS keys, asymmetric
|
1150
|
+
# encryption KMS keys, and asymmetric signing KMS keys. You can also
|
1151
|
+
# create multi-Region keys with imported key material. However, you
|
1152
|
+
# can't create multi-Region keys in a custom key store.
|
1153
|
+
#
|
1109
1154
|
# This operation supports *multi-Region keys*, an KMS feature that
|
1110
1155
|
# lets you create multiple interoperable KMS keys in different Amazon
|
1111
1156
|
# Web Services Regions. Because these KMS keys have the same key ID,
|
@@ -1113,57 +1158,57 @@ module Aws::KMS
|
|
1113
1158
|
# to encrypt data in one Amazon Web Services Region and decrypt it in
|
1114
1159
|
# a different Amazon Web Services Region without re-encrypting the
|
1115
1160
|
# data or making a cross-Region call. For more information about
|
1116
|
-
# multi-Region keys, see [
|
1161
|
+
# multi-Region keys, see [Multi-Region keys in KMS][4] in the *Key
|
1117
1162
|
# Management Service Developer Guide*.
|
1118
1163
|
#
|
1119
|
-
# You can create symmetric and asymmetric multi-Region keys and
|
1120
|
-
# multi-Region keys with imported key material. You cannot create
|
1121
|
-
# multi-Region keys in a custom key store.
|
1122
1164
|
#
|
1123
1165
|
#
|
1124
|
-
#
|
1125
|
-
#
|
1126
|
-
#
|
1127
|
-
#
|
1128
|
-
# GetParametersForImport operation to get a public key and import
|
1166
|
+
# : To import your own key material, begin by creating a symmetric
|
1167
|
+
# encryption KMS key with no key material. To do this, use the
|
1168
|
+
# `Origin` parameter of `CreateKey` with a value of `EXTERNAL`. Next,
|
1169
|
+
# use GetParametersForImport operation to get a public key and import
|
1129
1170
|
# token, and use the public key to encrypt your key material. Then,
|
1130
1171
|
# use ImportKeyMaterial with your import token to import the key
|
1131
1172
|
# material. For step-by-step instructions, see [Importing Key
|
1132
|
-
# Material][
|
1133
|
-
# Guide</i> </i>.
|
1134
|
-
#
|
1173
|
+
# Material][5] in the <i> <i>Key Management Service Developer
|
1174
|
+
# Guide</i> </i>.
|
1175
|
+
#
|
1176
|
+
# This feature supports only symmetric encryption KMS keys, including
|
1177
|
+
# multi-Region symmetric encryption KMS keys. You cannot import key
|
1178
|
+
# material into any other type of KMS key.
|
1135
1179
|
#
|
1136
1180
|
# To create a multi-Region primary key with imported key material, use
|
1137
1181
|
# the `Origin` parameter of `CreateKey` with a value of `EXTERNAL` and
|
1138
1182
|
# the `MultiRegion` parameter with a value of `True`. To create
|
1139
1183
|
# replicas of the multi-Region primary key, use the ReplicateKey
|
1140
|
-
# operation. For more information about multi-Region keys, see
|
1141
|
-
#
|
1142
|
-
# Guide*.
|
1184
|
+
# operation. For more information about multi-Region keys, see
|
1185
|
+
# [Multi-Region keys in KMS][4] in the *Key Management Service
|
1186
|
+
# Developer Guide*.
|
1143
1187
|
#
|
1144
1188
|
#
|
1145
1189
|
#
|
1146
1190
|
# Custom key store
|
1147
1191
|
#
|
1148
|
-
# : To create a symmetric KMS key in a [custom key store][
|
1149
|
-
# `CustomKeyStoreId` parameter to specify the custom key
|
1150
|
-
# must also use the `Origin` parameter with a value of
|
1151
|
-
# The CloudHSM cluster that is associated with the
|
1152
|
-
# must have at least two active HSMs in different
|
1153
|
-
# in the Amazon Web Services Region.
|
1192
|
+
# : To create a symmetric encryption KMS key in a [custom key store][6],
|
1193
|
+
# use the `CustomKeyStoreId` parameter to specify the custom key
|
1194
|
+
# store. You must also use the `Origin` parameter with a value of
|
1195
|
+
# `AWS_CLOUDHSM`. The CloudHSM cluster that is associated with the
|
1196
|
+
# custom key store must have at least two active HSMs in different
|
1197
|
+
# Availability Zones in the Amazon Web Services Region.
|
1154
1198
|
#
|
1155
|
-
#
|
1156
|
-
#
|
1157
|
-
#
|
1158
|
-
#
|
1199
|
+
# Custom key stores support only symmetric encryption KMS keys. You
|
1200
|
+
# cannot create an HMAC KMS key or an asymmetric KMS key in a custom
|
1201
|
+
# key store. For information about custom key stores in KMS see
|
1202
|
+
# [Custom key stores in KMS][6] in the <i> <i>Key Management Service
|
1203
|
+
# Developer Guide</i> </i>.
|
1159
1204
|
#
|
1160
1205
|
# **Cross-account use**\: No. You cannot use this operation to create a
|
1161
1206
|
# KMS key in a different Amazon Web Services account.
|
1162
1207
|
#
|
1163
|
-
# **Required permissions**\: [kms:CreateKey][
|
1164
|
-
# `Tags` parameter, [kms:TagResource][
|
1208
|
+
# **Required permissions**\: [kms:CreateKey][7] (IAM policy). To use the
|
1209
|
+
# `Tags` parameter, [kms:TagResource][7] (IAM policy). For examples and
|
1165
1210
|
# information about related permissions, see [Allow a user to create KMS
|
1166
|
-
# keys][
|
1211
|
+
# keys][8] in the *Key Management Service Developer Guide*.
|
1167
1212
|
#
|
1168
1213
|
# **Related operations:**
|
1169
1214
|
#
|
@@ -1176,14 +1221,13 @@ module Aws::KMS
|
|
1176
1221
|
#
|
1177
1222
|
#
|
1178
1223
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys
|
1179
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1180
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1181
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1182
|
-
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1183
|
-
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1184
|
-
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1185
|
-
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1186
|
-
# [9]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key
|
1224
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
1225
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
1226
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
|
1227
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
1228
|
+
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
1229
|
+
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
1230
|
+
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key
|
1187
1231
|
#
|
1188
1232
|
# @option params [String] :policy
|
1189
1233
|
# The key policy to attach to the KMS key.
|
@@ -1238,14 +1282,17 @@ module Aws::KMS
|
|
1238
1282
|
# @option params [String] :key_usage
|
1239
1283
|
# Determines the [cryptographic operations][1] for which you can use the
|
1240
1284
|
# KMS key. The default value is `ENCRYPT_DECRYPT`. This parameter is
|
1241
|
-
#
|
1242
|
-
#
|
1285
|
+
# optional when you are creating a symmetric encryption KMS key;
|
1286
|
+
# otherwise, it is required. You can't change the `KeyUsage` value
|
1287
|
+
# after the KMS key is created.
|
1243
1288
|
#
|
1244
1289
|
# Select only one valid value.
|
1245
1290
|
#
|
1246
|
-
# * For symmetric KMS keys, omit the parameter or specify
|
1291
|
+
# * For symmetric encryption KMS keys, omit the parameter or specify
|
1247
1292
|
# `ENCRYPT_DECRYPT`.
|
1248
1293
|
#
|
1294
|
+
# * For HMAC KMS keys (symmetric), specify `GENERATE_VERIFY_MAC`.
|
1295
|
+
#
|
1249
1296
|
# * For asymmetric KMS keys with RSA key material, specify
|
1250
1297
|
# `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
|
1251
1298
|
#
|
@@ -1268,32 +1315,40 @@ module Aws::KMS
|
|
1268
1315
|
# Specifies the type of KMS key to create. The default value,
|
1269
1316
|
# `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit symmetric key
|
1270
1317
|
# for encryption and decryption. For help choosing a key spec for your
|
1271
|
-
# KMS key, see [
|
1272
|
-
#
|
1318
|
+
# KMS key, see [Choosing a KMS key type][1] in the <i> <i>Key Management
|
1319
|
+
# Service Developer Guide</i> </i>.
|
1273
1320
|
#
|
1274
1321
|
# The `KeySpec` determines whether the KMS key contains a symmetric key
|
1275
|
-
# or an asymmetric key pair. It also determines the
|
1276
|
-
#
|
1277
|
-
#
|
1278
|
-
#
|
1279
|
-
#
|
1280
|
-
#
|
1281
|
-
#
|
1282
|
-
#
|
1283
|
-
# [Amazon Web Services services that are integrated with KMS][
|
1284
|
-
# symmetric KMS keys to protect your data. These services do
|
1285
|
-
# asymmetric KMS keys
|
1286
|
-
# symmetric or asymmetric, see [Identifying Symmetric and Asymmetric KMS
|
1287
|
-
# keys][5] in the *Key Management Service Developer Guide*.
|
1322
|
+
# or an asymmetric key pair. It also determines the algorithms that the
|
1323
|
+
# KMS key supports. You can't change the `KeySpec` after the KMS key is
|
1324
|
+
# created. To further restrict the algorithms that can be used with the
|
1325
|
+
# KMS key, use a condition key in its key policy or IAM policy. For more
|
1326
|
+
# information, see [kms:EncryptionAlgorithm][2], [kms:MacAlgorithm][3]
|
1327
|
+
# or [kms:Signing Algorithm][4] in the <i> <i>Key Management Service
|
1328
|
+
# Developer Guide</i> </i>.
|
1329
|
+
#
|
1330
|
+
# [Amazon Web Services services that are integrated with KMS][5] use
|
1331
|
+
# symmetric encryption KMS keys to protect your data. These services do
|
1332
|
+
# not support asymmetric KMS keys or HMAC KMS keys.
|
1288
1333
|
#
|
1289
1334
|
# KMS supports the following key specs for KMS keys:
|
1290
1335
|
#
|
1291
|
-
# * Symmetric key (default)
|
1336
|
+
# * Symmetric encryption key (default)
|
1292
1337
|
#
|
1293
1338
|
# * `SYMMETRIC_DEFAULT` (AES-256-GCM)
|
1294
1339
|
#
|
1295
1340
|
# ^
|
1296
1341
|
#
|
1342
|
+
# * HMAC keys (symmetric)
|
1343
|
+
#
|
1344
|
+
# * `HMAC_224`
|
1345
|
+
#
|
1346
|
+
# * `HMAC_256`
|
1347
|
+
#
|
1348
|
+
# * `HMAC_384`
|
1349
|
+
#
|
1350
|
+
# * `HMAC_512`
|
1351
|
+
#
|
1297
1352
|
# * Asymmetric RSA key pairs
|
1298
1353
|
#
|
1299
1354
|
# * `RSA_2048`
|
@@ -1318,11 +1373,11 @@ module Aws::KMS
|
|
1318
1373
|
#
|
1319
1374
|
#
|
1320
1375
|
#
|
1321
|
-
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose
|
1376
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html#symm-asymm-choose
|
1322
1377
|
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm
|
1323
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-
|
1324
|
-
# [4]:
|
1325
|
-
# [5]:
|
1378
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm
|
1379
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm
|
1380
|
+
# [5]: http://aws.amazon.com/kms/features/#AWS_Service_Integration
|
1326
1381
|
#
|
1327
1382
|
# @option params [String] :origin
|
1328
1383
|
# The source of the key material for the KMS key. You cannot change the
|
@@ -1333,13 +1388,13 @@ module Aws::KMS
|
|
1333
1388
|
# set the value to `EXTERNAL`. For more information about importing key
|
1334
1389
|
# material into KMS, see [Importing Key Material][1] in the *Key
|
1335
1390
|
# Management Service Developer Guide*. This value is valid only for
|
1336
|
-
# symmetric KMS keys.
|
1391
|
+
# symmetric encryption KMS keys.
|
1337
1392
|
#
|
1338
1393
|
# To create a KMS key in an KMS [custom key store][2] and create its key
|
1339
1394
|
# material in the associated CloudHSM cluster, set this value to
|
1340
1395
|
# `AWS_CLOUDHSM`. You must also use the `CustomKeyStoreId` parameter to
|
1341
1396
|
# identify the custom key store. This value is valid only for symmetric
|
1342
|
-
# KMS keys.
|
1397
|
+
# encryption KMS keys.
|
1343
1398
|
#
|
1344
1399
|
#
|
1345
1400
|
#
|
@@ -1354,9 +1409,9 @@ module Aws::KMS
|
|
1354
1409
|
# the custom key store must have at least two active HSMs, each in a
|
1355
1410
|
# different Availability Zone in the Region.
|
1356
1411
|
#
|
1357
|
-
# This parameter is valid only for symmetric KMS keys
|
1358
|
-
#
|
1359
|
-
#
|
1412
|
+
# This parameter is valid only for symmetric encryption KMS keys in a
|
1413
|
+
# single Region. You cannot create any other type of KMS key in a custom
|
1414
|
+
# key store.
|
1360
1415
|
#
|
1361
1416
|
# To find the ID of a custom key store, use the DescribeCustomKeyStores
|
1362
1417
|
# operation.
|
@@ -1399,8 +1454,8 @@ module Aws::KMS
|
|
1399
1454
|
# TagResource operation.
|
1400
1455
|
#
|
1401
1456
|
# <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
|
1402
|
-
# key. For details, see [
|
1403
|
-
#
|
1457
|
+
# key. For details, see [ABAC in KMS][1] in the *Key Management Service
|
1458
|
+
# Developer Guide*.
|
1404
1459
|
#
|
1405
1460
|
# </note>
|
1406
1461
|
#
|
@@ -1440,7 +1495,7 @@ module Aws::KMS
|
|
1440
1495
|
# encrypt data in one Amazon Web Services Region and decrypt it in a
|
1441
1496
|
# different Amazon Web Services Region without re-encrypting the data or
|
1442
1497
|
# making a cross-Region call. For more information about multi-Region
|
1443
|
-
# keys, see [
|
1498
|
+
# keys, see [Multi-Region keys in KMS][1] in the *Key Management Service
|
1444
1499
|
# Developer Guide*.
|
1445
1500
|
#
|
1446
1501
|
# This value creates a *primary key*, not a replica. To create a
|
@@ -1661,14 +1716,46 @@ module Aws::KMS
|
|
1661
1716
|
# }, # Detailed information about the KMS key that this operation creates.
|
1662
1717
|
# }
|
1663
1718
|
#
|
1719
|
+
# @example Example: To create an HMAC KMS key
|
1720
|
+
#
|
1721
|
+
# # This example creates a 384-bit symmetric HMAC KMS key. The GENERATE_VERIFY_MAC key usage value is required even though
|
1722
|
+
# # it's the only valid value for HMAC KMS keys. The key spec and key usage can't be changed after the key is created.
|
1723
|
+
#
|
1724
|
+
# resp = client.create_key({
|
1725
|
+
# key_spec: "HMAC_384", # Describes the type of key material in the KMS key.
|
1726
|
+
# key_usage: "GENERATE_VERIFY_MAC", # The cryptographic operations for which you can use the KMS key.
|
1727
|
+
# })
|
1728
|
+
#
|
1729
|
+
# resp.to_h outputs the following:
|
1730
|
+
# {
|
1731
|
+
# key_metadata: {
|
1732
|
+
# aws_account_id: "111122223333",
|
1733
|
+
# arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
|
1734
|
+
# creation_date: Time.parse("2022-04-05T14:04:55-07:00"),
|
1735
|
+
# customer_master_key_spec: "HMAC_384",
|
1736
|
+
# description: "",
|
1737
|
+
# enabled: true,
|
1738
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab",
|
1739
|
+
# key_manager: "CUSTOMER",
|
1740
|
+
# key_spec: "HMAC_384",
|
1741
|
+
# key_state: "Enabled",
|
1742
|
+
# key_usage: "GENERATE_VERIFY_MAC",
|
1743
|
+
# mac_algorithms: [
|
1744
|
+
# "HMAC_SHA_384",
|
1745
|
+
# ],
|
1746
|
+
# multi_region: false,
|
1747
|
+
# origin: "AWS_KMS",
|
1748
|
+
# }, # Detailed information about the KMS key that this operation creates.
|
1749
|
+
# }
|
1750
|
+
#
|
1664
1751
|
# @example Request syntax with placeholder values
|
1665
1752
|
#
|
1666
1753
|
# resp = client.create_key({
|
1667
1754
|
# policy: "PolicyType",
|
1668
1755
|
# description: "DescriptionType",
|
1669
|
-
# key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT
|
1670
|
-
# customer_master_key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT
|
1671
|
-
# key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT
|
1756
|
+
# key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT, GENERATE_VERIFY_MAC
|
1757
|
+
# customer_master_key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512
|
1758
|
+
# key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512
|
1672
1759
|
# origin: "AWS_KMS", # accepts AWS_KMS, EXTERNAL, AWS_CLOUDHSM
|
1673
1760
|
# custom_key_store_id: "CustomKeyStoreIdType",
|
1674
1761
|
# bypass_policy_lockout_safety_check: false,
|
@@ -1689,7 +1776,7 @@ module Aws::KMS
|
|
1689
1776
|
# resp.key_metadata.creation_date #=> Time
|
1690
1777
|
# resp.key_metadata.enabled #=> Boolean
|
1691
1778
|
# resp.key_metadata.description #=> String
|
1692
|
-
# resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT"
|
1779
|
+
# resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC"
|
1693
1780
|
# resp.key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating"
|
1694
1781
|
# resp.key_metadata.deletion_date #=> Time
|
1695
1782
|
# resp.key_metadata.valid_to #=> Time
|
@@ -1698,8 +1785,8 @@ module Aws::KMS
|
|
1698
1785
|
# resp.key_metadata.cloud_hsm_cluster_id #=> String
|
1699
1786
|
# resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
|
1700
1787
|
# resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
|
1701
|
-
# resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT"
|
1702
|
-
# resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT"
|
1788
|
+
# resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512"
|
1789
|
+
# resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512"
|
1703
1790
|
# resp.key_metadata.encryption_algorithms #=> Array
|
1704
1791
|
# resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
1705
1792
|
# resp.key_metadata.signing_algorithms #=> Array
|
@@ -1712,6 +1799,8 @@ module Aws::KMS
|
|
1712
1799
|
# resp.key_metadata.multi_region_configuration.replica_keys[0].arn #=> String
|
1713
1800
|
# resp.key_metadata.multi_region_configuration.replica_keys[0].region #=> String
|
1714
1801
|
# resp.key_metadata.pending_deletion_window_in_days #=> Integer
|
1802
|
+
# resp.key_metadata.mac_algorithms #=> Array
|
1803
|
+
# resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
1715
1804
|
#
|
1716
1805
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKey AWS API Documentation
|
1717
1806
|
#
|
@@ -1736,29 +1825,30 @@ module Aws::KMS
|
|
1736
1825
|
# * GenerateDataKeyPairWithoutPlaintext
|
1737
1826
|
#
|
1738
1827
|
# You can use this operation to decrypt ciphertext that was encrypted
|
1739
|
-
# under a symmetric
|
1740
|
-
# asymmetric, you must specify the KMS key and
|
1741
|
-
# that was used to encrypt the ciphertext. For
|
1742
|
-
#
|
1743
|
-
#
|
1828
|
+
# under a symmetric encryption KMS key or an asymmetric encryption KMS
|
1829
|
+
# key. When the KMS key is asymmetric, you must specify the KMS key and
|
1830
|
+
# the encryption algorithm that was used to encrypt the ciphertext. For
|
1831
|
+
# information about asymmetric KMS keys, see [Asymmetric KMS keys][1] in
|
1832
|
+
# the *Key Management Service Developer Guide*.
|
1744
1833
|
#
|
1745
|
-
# The Decrypt operation also decrypts ciphertext that was encrypted
|
1834
|
+
# The `Decrypt` operation also decrypts ciphertext that was encrypted
|
1746
1835
|
# outside of KMS by the public key in an KMS asymmetric KMS key.
|
1747
|
-
# However, it cannot decrypt ciphertext produced by other
|
1748
|
-
# such as the [Amazon Web Services Encryption SDK][2] or
|
1749
|
-
# client-side encryption][3]. These libraries return a
|
1750
|
-
# that is incompatible with KMS.
|
1751
|
-
#
|
1752
|
-
# If the ciphertext was encrypted under a symmetric KMS key,
|
1753
|
-
# parameter is optional. KMS can get this information from
|
1754
|
-
# it adds to the symmetric ciphertext blob. This feature
|
1755
|
-
# to your implementation by ensuring that authorized
|
1756
|
-
# ciphertext decades after it was encrypted, even if
|
1757
|
-
# of the key ID. However, specifying the KMS key is
|
1758
|
-
# as a best practice. When you use the `KeyId`
|
1759
|
-
# KMS key, KMS only uses the KMS key you specify.
|
1760
|
-
# encrypted under a different KMS key, the
|
1761
|
-
# This practice ensures that you use the KMS
|
1836
|
+
# However, it cannot decrypt symmetric ciphertext produced by other
|
1837
|
+
# libraries, such as the [Amazon Web Services Encryption SDK][2] or
|
1838
|
+
# [Amazon S3 client-side encryption][3]. These libraries return a
|
1839
|
+
# ciphertext format that is incompatible with KMS.
|
1840
|
+
#
|
1841
|
+
# If the ciphertext was encrypted under a symmetric encryption KMS key,
|
1842
|
+
# the `KeyId` parameter is optional. KMS can get this information from
|
1843
|
+
# metadata that it adds to the symmetric ciphertext blob. This feature
|
1844
|
+
# adds durability to your implementation by ensuring that authorized
|
1845
|
+
# users can decrypt ciphertext decades after it was encrypted, even if
|
1846
|
+
# they've lost track of the key ID. However, specifying the KMS key is
|
1847
|
+
# always recommended as a best practice. When you use the `KeyId`
|
1848
|
+
# parameter to specify a KMS key, KMS only uses the KMS key you specify.
|
1849
|
+
# If the ciphertext was encrypted under a different KMS key, the
|
1850
|
+
# `Decrypt` operation fails. This practice ensures that you use the KMS
|
1851
|
+
# key that you intend.
|
1762
1852
|
#
|
1763
1853
|
# Whenever possible, use key policies to give users permission to call
|
1764
1854
|
# the `Decrypt` operation on a particular KMS key, instead of using IAM
|
@@ -1777,8 +1867,8 @@ module Aws::KMS
|
|
1777
1867
|
# Service Developer Guide*.
|
1778
1868
|
#
|
1779
1869
|
# The KMS key that you use for this operation must be in a compatible
|
1780
|
-
# key state. For details, see [Key
|
1781
|
-
#
|
1870
|
+
# key state. For details, see [Key states of KMS keys][7] in the *Key
|
1871
|
+
# Management Service Developer Guide*.
|
1782
1872
|
#
|
1783
1873
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
1784
1874
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -1813,17 +1903,19 @@ module Aws::KMS
|
|
1813
1903
|
# @option params [Hash<String,String>] :encryption_context
|
1814
1904
|
# Specifies the encryption context to use when decrypting the data. An
|
1815
1905
|
# encryption context is valid only for [cryptographic operations][1]
|
1816
|
-
# with a symmetric KMS key. The standard asymmetric
|
1817
|
-
# algorithms that KMS uses do not support
|
1906
|
+
# with a symmetric encryption KMS key. The standard asymmetric
|
1907
|
+
# encryption algorithms and HMAC algorithms that KMS uses do not support
|
1908
|
+
# an encryption context.
|
1818
1909
|
#
|
1819
1910
|
# An *encryption context* is a collection of non-secret key-value pairs
|
1820
|
-
# that
|
1911
|
+
# that represent additional authenticated data. When you use an
|
1821
1912
|
# encryption context to encrypt data, you must specify the same (an
|
1822
1913
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
1823
|
-
# encryption context is
|
1824
|
-
#
|
1914
|
+
# encryption context is supported only on operations with symmetric
|
1915
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
1916
|
+
# an encryption context is optional, but it is strongly recommended.
|
1825
1917
|
#
|
1826
|
-
# For more information, see [Encryption
|
1918
|
+
# For more information, see [Encryption context][2] in the *Key
|
1827
1919
|
# Management Service Developer Guide*.
|
1828
1920
|
#
|
1829
1921
|
#
|
@@ -1845,14 +1937,18 @@ module Aws::KMS
|
|
1845
1937
|
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
|
1846
1938
|
#
|
1847
1939
|
# @option params [String] :key_id
|
1848
|
-
# Specifies the KMS key that KMS uses to decrypt the ciphertext.
|
1849
|
-
#
|
1940
|
+
# Specifies the KMS key that KMS uses to decrypt the ciphertext.
|
1941
|
+
#
|
1942
|
+
# Enter a key ID of the KMS key that was used to encrypt the ciphertext.
|
1943
|
+
# If you identify a different KMS key, the `Decrypt` operation throws an
|
1944
|
+
# `IncorrectKeyException`.
|
1850
1945
|
#
|
1851
1946
|
# This parameter is required only when the ciphertext was encrypted
|
1852
|
-
# under an asymmetric KMS key. If you used a symmetric
|
1853
|
-
# get the KMS key from metadata that it adds to the
|
1854
|
-
# blob. However, it is always recommended as a best
|
1855
|
-
# practice ensures that you use the KMS key that you
|
1947
|
+
# under an asymmetric KMS key. If you used a symmetric encryption KMS
|
1948
|
+
# key, KMS can get the KMS key from metadata that it adds to the
|
1949
|
+
# symmetric ciphertext blob. However, it is always recommended as a best
|
1950
|
+
# practice. This practice ensures that you use the KMS key that you
|
1951
|
+
# intend.
|
1856
1952
|
#
|
1857
1953
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
1858
1954
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -1882,7 +1978,7 @@ module Aws::KMS
|
|
1882
1978
|
# This parameter is required only when the ciphertext was encrypted
|
1883
1979
|
# under an asymmetric KMS key. The default value, `SYMMETRIC_DEFAULT`,
|
1884
1980
|
# represents the only supported algorithm that is valid for symmetric
|
1885
|
-
# KMS keys.
|
1981
|
+
# encryption KMS keys.
|
1886
1982
|
#
|
1887
1983
|
# @return [Types::DecryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1888
1984
|
#
|
@@ -1936,8 +2032,8 @@ module Aws::KMS
|
|
1936
2032
|
# Deletes the specified alias.
|
1937
2033
|
#
|
1938
2034
|
# <note markdown="1"> Adding, deleting, or updating an alias can allow or deny permission to
|
1939
|
-
# the KMS key. For details, see [
|
1940
|
-
#
|
2035
|
+
# the KMS key. For details, see [ABAC in KMS][1] in the *Key Management
|
2036
|
+
# Service Developer Guide*.
|
1941
2037
|
#
|
1942
2038
|
# </note>
|
1943
2039
|
#
|
@@ -2112,8 +2208,8 @@ module Aws::KMS
|
|
2112
2208
|
# reimport the same key material into the KMS key.
|
2113
2209
|
#
|
2114
2210
|
# The KMS key that you use for this operation must be in a compatible
|
2115
|
-
# key state. For details, see [Key
|
2116
|
-
#
|
2211
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
2212
|
+
# Management Service Developer Guide*.
|
2117
2213
|
#
|
2118
2214
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2119
2215
|
# key in a different Amazon Web Services account.
|
@@ -2339,14 +2435,13 @@ module Aws::KMS
|
|
2339
2435
|
# This detailed information includes the key ARN, creation date (and
|
2340
2436
|
# deletion date, if applicable), the key state, and the origin and
|
2341
2437
|
# expiration date (if any) of the key material. It includes fields, like
|
2342
|
-
# `KeySpec`, that help you distinguish
|
2343
|
-
#
|
2344
|
-
#
|
2345
|
-
#
|
2346
|
-
#
|
2347
|
-
#
|
2348
|
-
#
|
2349
|
-
# replica keys.
|
2438
|
+
# `KeySpec`, that help you distinguish different types of KMS keys. It
|
2439
|
+
# also displays the key usage (encryption, signing, or generating and
|
2440
|
+
# verifying MACs) and the algorithms that the KMS key supports. For KMS
|
2441
|
+
# keys in custom key stores, it includes information about the custom
|
2442
|
+
# key store, such as the key store ID and the CloudHSM cluster ID. For
|
2443
|
+
# multi-Region keys, it displays the primary key and all related replica
|
2444
|
+
# keys.
|
2350
2445
|
#
|
2351
2446
|
# `DescribeKey` does not return the following information:
|
2352
2447
|
#
|
@@ -2364,11 +2459,10 @@ module Aws::KMS
|
|
2364
2459
|
# * Key policies and grants on the KMS key. To get this information, use
|
2365
2460
|
# GetKeyPolicy and ListGrants.
|
2366
2461
|
#
|
2367
|
-
#
|
2368
|
-
#
|
2369
|
-
#
|
2370
|
-
#
|
2371
|
-
# `Arn` of the new KMS key in the response.
|
2462
|
+
# In general, `DescribeKey` is a non-mutating operation. It returns data
|
2463
|
+
# about KMS keys, but doesn't change them. However, Amazon Web Services
|
2464
|
+
# services use `DescribeKey` to create [Amazon Web Services managed
|
2465
|
+
# keys][2] from a *predefined Amazon Web Services alias* with no key ID.
|
2372
2466
|
#
|
2373
2467
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
2374
2468
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -2450,10 +2544,10 @@ module Aws::KMS
|
|
2450
2544
|
#
|
2451
2545
|
# @example Example: To get details about a KMS key
|
2452
2546
|
#
|
2453
|
-
# # The following example gets metadata
|
2547
|
+
# # The following example gets metadata for a symmetric encryption KMS key.
|
2454
2548
|
#
|
2455
2549
|
# resp = client.describe_key({
|
2456
|
-
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", #
|
2550
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key.
|
2457
2551
|
# })
|
2458
2552
|
#
|
2459
2553
|
# resp.to_h outputs the following:
|
@@ -2478,6 +2572,121 @@ module Aws::KMS
|
|
2478
2572
|
# }, # An object that contains information about the specified KMS key.
|
2479
2573
|
# }
|
2480
2574
|
#
|
2575
|
+
# @example Example: To get details about an RSA asymmetric KMS key
|
2576
|
+
#
|
2577
|
+
# # The following example gets metadata for an asymmetric RSA KMS key used for signing and verification.
|
2578
|
+
#
|
2579
|
+
# resp = client.describe_key({
|
2580
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key.
|
2581
|
+
# })
|
2582
|
+
#
|
2583
|
+
# resp.to_h outputs the following:
|
2584
|
+
# {
|
2585
|
+
# key_metadata: {
|
2586
|
+
# aws_account_id: "111122223333",
|
2587
|
+
# arn: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
|
2588
|
+
# creation_date: Time.parse(1571767572.317),
|
2589
|
+
# customer_master_key_spec: "RSA_2048",
|
2590
|
+
# description: "",
|
2591
|
+
# enabled: false,
|
2592
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab",
|
2593
|
+
# key_manager: "CUSTOMER",
|
2594
|
+
# key_spec: "RSA_2048",
|
2595
|
+
# key_state: "Disabled",
|
2596
|
+
# key_usage: "SIGN_VERIFY",
|
2597
|
+
# multi_region: false,
|
2598
|
+
# origin: "AWS_KMS",
|
2599
|
+
# signing_algorithms: [
|
2600
|
+
# "RSASSA_PKCS1_V1_5_SHA_256",
|
2601
|
+
# "RSASSA_PKCS1_V1_5_SHA_384",
|
2602
|
+
# "RSASSA_PKCS1_V1_5_SHA_512",
|
2603
|
+
# "RSASSA_PSS_SHA_256",
|
2604
|
+
# "RSASSA_PSS_SHA_384",
|
2605
|
+
# "RSASSA_PSS_SHA_512",
|
2606
|
+
# ],
|
2607
|
+
# }, # An object that contains information about the specified KMS key.
|
2608
|
+
# }
|
2609
|
+
#
|
2610
|
+
# @example Example: To get details about a multi-Region key
|
2611
|
+
#
|
2612
|
+
# # The following example gets metadata for a multi-Region replica key. This multi-Region key is a symmetric encryption key.
|
2613
|
+
# # DescribeKey returns information about the primary key and all of its replicas.
|
2614
|
+
#
|
2615
|
+
# resp = client.describe_key({
|
2616
|
+
# key_id: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key.
|
2617
|
+
# })
|
2618
|
+
#
|
2619
|
+
# resp.to_h outputs the following:
|
2620
|
+
# {
|
2621
|
+
# key_metadata: {
|
2622
|
+
# aws_account_id: "111122223333",
|
2623
|
+
# arn: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2624
|
+
# creation_date: Time.parse(1586329200.918),
|
2625
|
+
# customer_master_key_spec: "SYMMETRIC_DEFAULT",
|
2626
|
+
# description: "",
|
2627
|
+
# enabled: true,
|
2628
|
+
# encryption_algorithms: [
|
2629
|
+
# "SYMMETRIC_DEFAULT",
|
2630
|
+
# ],
|
2631
|
+
# key_id: "mrk-1234abcd12ab34cd56ef1234567890ab",
|
2632
|
+
# key_manager: "CUSTOMER",
|
2633
|
+
# key_state: "Enabled",
|
2634
|
+
# key_usage: "ENCRYPT_DECRYPT",
|
2635
|
+
# multi_region: true,
|
2636
|
+
# multi_region_configuration: {
|
2637
|
+
# multi_region_key_type: "PRIMARY",
|
2638
|
+
# primary_key: {
|
2639
|
+
# arn: "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2640
|
+
# region: "us-west-2",
|
2641
|
+
# },
|
2642
|
+
# replica_keys: [
|
2643
|
+
# {
|
2644
|
+
# arn: "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2645
|
+
# region: "eu-west-1",
|
2646
|
+
# },
|
2647
|
+
# {
|
2648
|
+
# arn: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2649
|
+
# region: "ap-northeast-1",
|
2650
|
+
# },
|
2651
|
+
# {
|
2652
|
+
# arn: "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2653
|
+
# region: "sa-east-1",
|
2654
|
+
# },
|
2655
|
+
# ],
|
2656
|
+
# },
|
2657
|
+
# origin: "AWS_KMS",
|
2658
|
+
# }, # An object that contains information about the specified KMS key.
|
2659
|
+
# }
|
2660
|
+
#
|
2661
|
+
# @example Example: To get details about an HMAC KMS key
|
2662
|
+
#
|
2663
|
+
# # The following example gets the metadata of an HMAC KMS key.
|
2664
|
+
#
|
2665
|
+
# resp = client.describe_key({
|
2666
|
+
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key.
|
2667
|
+
# })
|
2668
|
+
#
|
2669
|
+
# resp.to_h outputs the following:
|
2670
|
+
# {
|
2671
|
+
# key_metadata: {
|
2672
|
+
# aws_account_id: "123456789012",
|
2673
|
+
# arn: "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab",
|
2674
|
+
# creation_date: Time.parse(1566160362.664),
|
2675
|
+
# customer_master_key_spec: "HMAC_256",
|
2676
|
+
# description: "Development test key",
|
2677
|
+
# enabled: true,
|
2678
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab",
|
2679
|
+
# key_manager: "CUSTOMER",
|
2680
|
+
# key_state: "Enabled",
|
2681
|
+
# key_usage: "GENERATE_VERIFY_MAC",
|
2682
|
+
# mac_algorithms: [
|
2683
|
+
# "HMAC_SHA_256",
|
2684
|
+
# ],
|
2685
|
+
# multi_region: false,
|
2686
|
+
# origin: "AWS_KMS",
|
2687
|
+
# }, # An object that contains information about the specified KMS key.
|
2688
|
+
# }
|
2689
|
+
#
|
2481
2690
|
# @example Request syntax with placeholder values
|
2482
2691
|
#
|
2483
2692
|
# resp = client.describe_key({
|
@@ -2493,7 +2702,7 @@ module Aws::KMS
|
|
2493
2702
|
# resp.key_metadata.creation_date #=> Time
|
2494
2703
|
# resp.key_metadata.enabled #=> Boolean
|
2495
2704
|
# resp.key_metadata.description #=> String
|
2496
|
-
# resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT"
|
2705
|
+
# resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC"
|
2497
2706
|
# resp.key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating"
|
2498
2707
|
# resp.key_metadata.deletion_date #=> Time
|
2499
2708
|
# resp.key_metadata.valid_to #=> Time
|
@@ -2502,8 +2711,8 @@ module Aws::KMS
|
|
2502
2711
|
# resp.key_metadata.cloud_hsm_cluster_id #=> String
|
2503
2712
|
# resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
|
2504
2713
|
# resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
|
2505
|
-
# resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT"
|
2506
|
-
# resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT"
|
2714
|
+
# resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512"
|
2715
|
+
# resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512"
|
2507
2716
|
# resp.key_metadata.encryption_algorithms #=> Array
|
2508
2717
|
# resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
2509
2718
|
# resp.key_metadata.signing_algorithms #=> Array
|
@@ -2516,6 +2725,8 @@ module Aws::KMS
|
|
2516
2725
|
# resp.key_metadata.multi_region_configuration.replica_keys[0].arn #=> String
|
2517
2726
|
# resp.key_metadata.multi_region_configuration.replica_keys[0].region #=> String
|
2518
2727
|
# resp.key_metadata.pending_deletion_window_in_days #=> Integer
|
2728
|
+
# resp.key_metadata.mac_algorithms #=> Array
|
2729
|
+
# resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
2519
2730
|
#
|
2520
2731
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKey AWS API Documentation
|
2521
2732
|
#
|
@@ -2530,12 +2741,12 @@ module Aws::KMS
|
|
2530
2741
|
# prevents use of the KMS key for [cryptographic operations][1].
|
2531
2742
|
#
|
2532
2743
|
# For more information about how key state affects the use of a KMS key,
|
2533
|
-
# see [Key
|
2534
|
-
#
|
2744
|
+
# see [Key states of KMS keys][2] in the <i> <i>Key Management Service
|
2745
|
+
# Developer Guide</i> </i>.
|
2535
2746
|
#
|
2536
2747
|
# The KMS key that you use for this operation must be in a compatible
|
2537
|
-
# key state. For details, see [Key
|
2538
|
-
#
|
2748
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
2749
|
+
# Management Service Developer Guide*.
|
2539
2750
|
#
|
2540
2751
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2541
2752
|
# key in a different Amazon Web Services account.
|
@@ -2592,21 +2803,22 @@ module Aws::KMS
|
|
2592
2803
|
end
|
2593
2804
|
|
2594
2805
|
# Disables [automatic rotation of the key material][1] for the specified
|
2595
|
-
# symmetric KMS key.
|
2806
|
+
# symmetric encryption KMS key.
|
2596
2807
|
#
|
2597
|
-
# You cannot enable automatic rotation of [asymmetric KMS keys][2],
|
2598
|
-
# keys with [imported key material][
|
2599
|
-
# store][
|
2600
|
-
# [multi-Region keys][
|
2808
|
+
# You cannot enable automatic rotation of [asymmetric KMS keys][2],
|
2809
|
+
# [HMAC KMS keys][3], KMS keys with [imported key material][4], or KMS
|
2810
|
+
# keys in a [custom key store][5]. To enable or disable automatic
|
2811
|
+
# rotation of a set of related [multi-Region keys][6], set the property
|
2812
|
+
# on the primary key.
|
2601
2813
|
#
|
2602
2814
|
# The KMS key that you use for this operation must be in a compatible
|
2603
|
-
# key state. For details, see [Key
|
2604
|
-
#
|
2815
|
+
# key state. For details, see [Key states of KMS keys][7] in the *Key
|
2816
|
+
# Management Service Developer Guide*.
|
2605
2817
|
#
|
2606
2818
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2607
2819
|
# key in a different Amazon Web Services account.
|
2608
2820
|
#
|
2609
|
-
# **Required permissions**\: [kms:DisableKeyRotation][
|
2821
|
+
# **Required permissions**\: [kms:DisableKeyRotation][8] (key policy)
|
2610
2822
|
#
|
2611
2823
|
# **Related operations:**
|
2612
2824
|
#
|
@@ -2617,17 +2829,19 @@ module Aws::KMS
|
|
2617
2829
|
#
|
2618
2830
|
#
|
2619
2831
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
|
2620
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2621
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2622
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2623
|
-
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2624
|
-
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2625
|
-
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2832
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
2833
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
2834
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
2835
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
2836
|
+
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
|
2837
|
+
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
2838
|
+
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
2626
2839
|
#
|
2627
2840
|
# @option params [required, String] :key_id
|
2628
|
-
# Identifies a symmetric KMS key. You cannot enable or
|
2629
|
-
# rotation of [asymmetric KMS keys][1],
|
2630
|
-
#
|
2841
|
+
# Identifies a symmetric encryption KMS key. You cannot enable or
|
2842
|
+
# disable automatic rotation of [asymmetric KMS keys][1], [HMAC KMS
|
2843
|
+
# keys][2], KMS keys with [imported key material][3], or KMS keys in a
|
2844
|
+
# [custom key store][4].
|
2631
2845
|
#
|
2632
2846
|
# Specify the key ID or key ARN of the KMS key.
|
2633
2847
|
#
|
@@ -2644,8 +2858,9 @@ module Aws::KMS
|
|
2644
2858
|
#
|
2645
2859
|
#
|
2646
2860
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks
|
2647
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2648
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2861
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
2862
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
2863
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
2649
2864
|
#
|
2650
2865
|
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
|
2651
2866
|
#
|
@@ -2763,8 +2978,8 @@ module Aws::KMS
|
|
2763
2978
|
# KMS key for [cryptographic operations][1].
|
2764
2979
|
#
|
2765
2980
|
# The KMS key that you use for this operation must be in a compatible
|
2766
|
-
# key state. For details, see [Key
|
2767
|
-
#
|
2981
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
2982
|
+
# Management Service Developer Guide*.
|
2768
2983
|
#
|
2769
2984
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2770
2985
|
# key in a different Amazon Web Services account.
|
@@ -2821,21 +3036,22 @@ module Aws::KMS
|
|
2821
3036
|
end
|
2822
3037
|
|
2823
3038
|
# Enables [automatic rotation of the key material][1] for the specified
|
2824
|
-
# symmetric KMS key.
|
3039
|
+
# symmetric encryption KMS key.
|
2825
3040
|
#
|
2826
|
-
# You cannot enable automatic rotation of [asymmetric KMS keys][2],
|
2827
|
-
# keys with [imported key material][
|
2828
|
-
# store][
|
2829
|
-
# [multi-Region keys][
|
3041
|
+
# You cannot enable automatic rotation of [asymmetric KMS keys][2],
|
3042
|
+
# [HMAC KMS keys][3], KMS keys with [imported key material][4], or KMS
|
3043
|
+
# keys in a [custom key store][5]. To enable or disable automatic
|
3044
|
+
# rotation of a set of related [multi-Region keys][6], set the property
|
3045
|
+
# on the primary key.
|
2830
3046
|
#
|
2831
3047
|
# The KMS key that you use for this operation must be in a compatible
|
2832
|
-
# key state. For details, see [Key
|
2833
|
-
#
|
3048
|
+
# key state. For details, see [Key states of KMS keys][7] in the *Key
|
3049
|
+
# Management Service Developer Guide*.
|
2834
3050
|
#
|
2835
3051
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2836
3052
|
# key in a different Amazon Web Services account.
|
2837
3053
|
#
|
2838
|
-
# **Required permissions**\: [kms:EnableKeyRotation][
|
3054
|
+
# **Required permissions**\: [kms:EnableKeyRotation][8] (key policy)
|
2839
3055
|
#
|
2840
3056
|
# **Related operations:**
|
2841
3057
|
#
|
@@ -2846,19 +3062,20 @@ module Aws::KMS
|
|
2846
3062
|
#
|
2847
3063
|
#
|
2848
3064
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
|
2849
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2850
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2851
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2852
|
-
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2853
|
-
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2854
|
-
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
3065
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
3066
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
3067
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
3068
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
3069
|
+
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
|
3070
|
+
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
3071
|
+
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
2855
3072
|
#
|
2856
3073
|
# @option params [required, String] :key_id
|
2857
|
-
# Identifies a symmetric KMS key. You cannot enable automatic
|
2858
|
-
# of [asymmetric KMS keys][1], KMS keys
|
2859
|
-
# or KMS keys in a [custom key
|
2860
|
-
# rotation of a set of related
|
2861
|
-
# on the primary key.
|
3074
|
+
# Identifies a symmetric encryption KMS key. You cannot enable automatic
|
3075
|
+
# rotation of [asymmetric KMS keys][1], [HMAC KMS keys][2], KMS keys
|
3076
|
+
# with [imported key material][3], or KMS keys in a [custom key
|
3077
|
+
# store][4]. To enable or disable automatic rotation of a set of related
|
3078
|
+
# [multi-Region keys][5], set the property on the primary key.
|
2862
3079
|
#
|
2863
3080
|
# Specify the key ID or key ARN of the KMS key.
|
2864
3081
|
#
|
@@ -2874,10 +3091,11 @@ module Aws::KMS
|
|
2874
3091
|
#
|
2875
3092
|
#
|
2876
3093
|
#
|
2877
|
-
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2878
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2879
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2880
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
3094
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
3095
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
3096
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
3097
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
3098
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
|
2881
3099
|
#
|
2882
3100
|
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
|
2883
3101
|
#
|
@@ -2905,36 +3123,22 @@ module Aws::KMS
|
|
2905
3123
|
req.send_request(options)
|
2906
3124
|
end
|
2907
3125
|
|
2908
|
-
# Encrypts plaintext
|
2909
|
-
#
|
2910
|
-
#
|
2911
|
-
#
|
2912
|
-
#
|
2913
|
-
#
|
2914
|
-
#
|
2915
|
-
#
|
2916
|
-
#
|
2917
|
-
#
|
2918
|
-
#
|
2919
|
-
#
|
2920
|
-
#
|
2921
|
-
#
|
2922
|
-
#
|
2923
|
-
#
|
2924
|
-
# The GenerateDataKey and GenerateDataKeyPair operations return a
|
2925
|
-
# plaintext data key and an encrypted copy of that data key.
|
2926
|
-
#
|
2927
|
-
# When you encrypt data, you must specify a symmetric or asymmetric KMS
|
2928
|
-
# key to use in the encryption operation. The KMS key must have a
|
2929
|
-
# `KeyUsage` value of `ENCRYPT_DECRYPT.` To find the `KeyUsage` of a KMS
|
2930
|
-
# key, use the DescribeKey operation.
|
2931
|
-
#
|
2932
|
-
# If you use a symmetric KMS key, you can use an encryption context to
|
2933
|
-
# add additional security to your encryption operation. If you specify
|
2934
|
-
# an `EncryptionContext` when encrypting data, you must specify the same
|
2935
|
-
# encryption context (a case-sensitive exact match) when decrypting the
|
2936
|
-
# data. Otherwise, the request to decrypt fails with an
|
2937
|
-
# `InvalidCiphertextException`. For more information, see [Encryption
|
3126
|
+
# Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a
|
3127
|
+
# symmetric or asymmetric KMS key with a `KeyUsage` of
|
3128
|
+
# `ENCRYPT_DECRYPT`.
|
3129
|
+
#
|
3130
|
+
# You can use this operation to encrypt small amounts of arbitrary data,
|
3131
|
+
# such as a personal identifier or database password, or other sensitive
|
3132
|
+
# information. You don't need to use the `Encrypt` operation to encrypt
|
3133
|
+
# a data key. The GenerateDataKey and GenerateDataKeyPair operations
|
3134
|
+
# return a plaintext data key and an encrypted copy of that data key.
|
3135
|
+
#
|
3136
|
+
# If you use a symmetric encryption KMS key, you can use an encryption
|
3137
|
+
# context to add additional security to your encryption operation. If
|
3138
|
+
# you specify an `EncryptionContext` when encrypting data, you must
|
3139
|
+
# specify the same encryption context (a case-sensitive exact match)
|
3140
|
+
# when decrypting the data. Otherwise, the request to decrypt fails with
|
3141
|
+
# an `InvalidCiphertextException`. For more information, see [Encryption
|
2938
3142
|
# Context][1] in the *Key Management Service Developer Guide*.
|
2939
3143
|
#
|
2940
3144
|
# If you specify an asymmetric KMS key, you must also specify the
|
@@ -2949,15 +3153,15 @@ module Aws::KMS
|
|
2949
3153
|
# fails.
|
2950
3154
|
#
|
2951
3155
|
# You are not required to supply the key ID and encryption algorithm
|
2952
|
-
# when you decrypt with symmetric KMS keys because KMS stores
|
2953
|
-
# information in the ciphertext blob. KMS cannot store metadata in
|
3156
|
+
# when you decrypt with symmetric encryption KMS keys because KMS stores
|
3157
|
+
# this information in the ciphertext blob. KMS cannot store metadata in
|
2954
3158
|
# ciphertext generated with asymmetric keys. The standard format for
|
2955
3159
|
# asymmetric key ciphertext does not include configurable fields.
|
2956
3160
|
#
|
2957
3161
|
# The maximum size of the data that you can encrypt varies with the type
|
2958
3162
|
# of KMS key and the encryption algorithm that you choose.
|
2959
3163
|
#
|
2960
|
-
# * Symmetric KMS keys
|
3164
|
+
# * Symmetric encryption KMS keys
|
2961
3165
|
#
|
2962
3166
|
# * `SYMMETRIC_DEFAULT`\: 4096 bytes
|
2963
3167
|
#
|
@@ -2982,8 +3186,8 @@ module Aws::KMS
|
|
2982
3186
|
# * `RSAES_OAEP_SHA_256`\: 446 bytes
|
2983
3187
|
#
|
2984
3188
|
# The KMS key that you use for this operation must be in a compatible
|
2985
|
-
# key state. For details, see [Key
|
2986
|
-
#
|
3189
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
3190
|
+
# Management Service Developer Guide*.
|
2987
3191
|
#
|
2988
3192
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
2989
3193
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -3006,7 +3210,9 @@ module Aws::KMS
|
|
3006
3210
|
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
3007
3211
|
#
|
3008
3212
|
# @option params [required, String] :key_id
|
3009
|
-
# Identifies the KMS key to use in the encryption operation.
|
3213
|
+
# Identifies the KMS key to use in the encryption operation. The KMS key
|
3214
|
+
# must have a `KeyUsage` of `ENCRYPT_DECRYPT`. To find the `KeyUsage` of
|
3215
|
+
# a KMS key, use the DescribeKey operation.
|
3010
3216
|
#
|
3011
3217
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3012
3218
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3033,18 +3239,19 @@ module Aws::KMS
|
|
3033
3239
|
# @option params [Hash<String,String>] :encryption_context
|
3034
3240
|
# Specifies the encryption context that will be used to encrypt the
|
3035
3241
|
# data. An encryption context is valid only for [cryptographic
|
3036
|
-
# operations][1] with a symmetric KMS key. The standard
|
3037
|
-
# encryption algorithms that KMS uses do
|
3038
|
-
# context.
|
3242
|
+
# operations][1] with a symmetric encryption KMS key. The standard
|
3243
|
+
# asymmetric encryption algorithms and HMAC algorithms that KMS uses do
|
3244
|
+
# not support an encryption context.
|
3039
3245
|
#
|
3040
3246
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3041
|
-
# that
|
3247
|
+
# that represent additional authenticated data. When you use an
|
3042
3248
|
# encryption context to encrypt data, you must specify the same (an
|
3043
3249
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3044
|
-
# encryption context is
|
3045
|
-
#
|
3250
|
+
# encryption context is supported only on operations with symmetric
|
3251
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
3252
|
+
# an encryption context is optional, but it is strongly recommended.
|
3046
3253
|
#
|
3047
|
-
# For more information, see [Encryption
|
3254
|
+
# For more information, see [Encryption context][2] in the *Key
|
3048
3255
|
# Management Service Developer Guide*.
|
3049
3256
|
#
|
3050
3257
|
#
|
@@ -3071,9 +3278,9 @@ module Aws::KMS
|
|
3071
3278
|
# that you specify.
|
3072
3279
|
#
|
3073
3280
|
# This parameter is required only for asymmetric KMS keys. The default
|
3074
|
-
# value, `SYMMETRIC_DEFAULT`, is the algorithm used for symmetric
|
3075
|
-
# keys. If you are using an asymmetric KMS key, we
|
3076
|
-
# RSAES\_OAEP\_SHA\_256.
|
3281
|
+
# value, `SYMMETRIC_DEFAULT`, is the algorithm used for symmetric
|
3282
|
+
# encryption KMS keys. If you are using an asymmetric KMS key, we
|
3283
|
+
# recommend RSAES\_OAEP\_SHA\_256.
|
3077
3284
|
#
|
3078
3285
|
# @return [Types::EncryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
3079
3286
|
#
|
@@ -3124,19 +3331,17 @@ module Aws::KMS
|
|
3124
3331
|
req.send_request(options)
|
3125
3332
|
end
|
3126
3333
|
|
3127
|
-
#
|
3334
|
+
# Returns a unique symmetric data key for use outside of KMS. This
|
3128
3335
|
# operation returns a plaintext copy of the data key and a copy that is
|
3129
|
-
# encrypted under a KMS key that you specify.
|
3130
|
-
#
|
3131
|
-
# key
|
3132
|
-
#
|
3133
|
-
#
|
3134
|
-
#
|
3135
|
-
# key
|
3136
|
-
#
|
3137
|
-
#
|
3138
|
-
# used to encrypt the data key. You cannot use an asymmetric KMS key to
|
3139
|
-
# generate data keys. To get the type of your KMS key, use the
|
3336
|
+
# encrypted under a symmetric encryption KMS key that you specify. The
|
3337
|
+
# bytes in the plaintext key are random; they are not related to the
|
3338
|
+
# caller or the KMS key. You can use the plaintext key to encrypt your
|
3339
|
+
# data outside of KMS and store the encrypted data key with the
|
3340
|
+
# encrypted data.
|
3341
|
+
#
|
3342
|
+
# To generate a data key, specify the symmetric encryption KMS key that
|
3343
|
+
# will be used to encrypt the data key. You cannot use an asymmetric KMS
|
3344
|
+
# key to encrypt data keys. To get the type of your KMS key, use the
|
3140
3345
|
# DescribeKey operation. You must also specify the length of the data
|
3141
3346
|
# key. Use either the `KeySpec` or `NumberOfBytes` parameters (but not
|
3142
3347
|
# both). For 128-bit and 256-bit data keys, use the `KeySpec` parameter.
|
@@ -3147,7 +3352,7 @@ module Aws::KMS
|
|
3147
3352
|
# GenerateDataKeyPairWithoutPlaintext operation. To get a
|
3148
3353
|
# cryptographically secure random byte string, use GenerateRandom.
|
3149
3354
|
#
|
3150
|
-
# You can use
|
3355
|
+
# You can use an optional encryption context to add additional security
|
3151
3356
|
# to the encryption operation. If you specify an `EncryptionContext`,
|
3152
3357
|
# you must specify the same encryption context (a case-sensitive exact
|
3153
3358
|
# match) when decrypting the encrypted data key. Otherwise, the request
|
@@ -3162,8 +3367,8 @@ module Aws::KMS
|
|
3162
3367
|
# Service Developer Guide*.
|
3163
3368
|
#
|
3164
3369
|
# The KMS key that you use for this operation must be in a compatible
|
3165
|
-
# key state. For details, see [Key
|
3166
|
-
#
|
3370
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
3371
|
+
# Management Service Developer Guide*.
|
3167
3372
|
#
|
3168
3373
|
# **How to use your data key**
|
3169
3374
|
#
|
@@ -3222,7 +3427,10 @@ module Aws::KMS
|
|
3222
3427
|
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
3223
3428
|
#
|
3224
3429
|
# @option params [required, String] :key_id
|
3225
|
-
#
|
3430
|
+
# Specifies the symmetric encryption KMS key that encrypts the data key.
|
3431
|
+
# You cannot specify an asymmetric KMS key or a KMS key in a custom key
|
3432
|
+
# store. To get the type and origin of your KMS key, use the DescribeKey
|
3433
|
+
# operation.
|
3226
3434
|
#
|
3227
3435
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3228
3436
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3248,13 +3456,14 @@ module Aws::KMS
|
|
3248
3456
|
# data key.
|
3249
3457
|
#
|
3250
3458
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3251
|
-
# that
|
3459
|
+
# that represent additional authenticated data. When you use an
|
3252
3460
|
# encryption context to encrypt data, you must specify the same (an
|
3253
3461
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3254
|
-
# encryption context is
|
3255
|
-
#
|
3462
|
+
# encryption context is supported only on operations with symmetric
|
3463
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
3464
|
+
# an encryption context is optional, but it is strongly recommended.
|
3256
3465
|
#
|
3257
|
-
# For more information, see [Encryption
|
3466
|
+
# For more information, see [Encryption context][1] in the *Key
|
3258
3467
|
# Management Service Developer Guide*.
|
3259
3468
|
#
|
3260
3469
|
#
|
@@ -3342,11 +3551,13 @@ module Aws::KMS
|
|
3342
3551
|
req.send_request(options)
|
3343
3552
|
end
|
3344
3553
|
|
3345
|
-
#
|
3554
|
+
# Returns a unique asymmetric data key pair for use outside of KMS. This
|
3346
3555
|
# operation returns a plaintext public key, a plaintext private key, and
|
3347
|
-
# a copy of the private key that is encrypted under the symmetric
|
3348
|
-
# key you specify. You can use the data key pair to
|
3349
|
-
# cryptography and implement digital signatures
|
3556
|
+
# a copy of the private key that is encrypted under the symmetric
|
3557
|
+
# encryption KMS key you specify. You can use the data key pair to
|
3558
|
+
# perform asymmetric cryptography and implement digital signatures
|
3559
|
+
# outside of KMS. The bytes in the keys are random; they not related to
|
3560
|
+
# the caller or to the KMS key that is used to encrypt the private key.
|
3350
3561
|
#
|
3351
3562
|
# You can use the public key that `GenerateDataKeyPair` returns to
|
3352
3563
|
# encrypt data or verify a signature outside of KMS. Then, store the
|
@@ -3354,10 +3565,10 @@ module Aws::KMS
|
|
3354
3565
|
# data or sign a message, you can use the Decrypt operation to decrypt
|
3355
3566
|
# the encrypted private key.
|
3356
3567
|
#
|
3357
|
-
# To generate a data key pair, you must specify a symmetric
|
3358
|
-
# encrypt the private key in a data key pair. You cannot use
|
3359
|
-
# asymmetric KMS key or a KMS key in a custom key store. To get the
|
3360
|
-
# and origin of your KMS key, use the DescribeKey operation.
|
3568
|
+
# To generate a data key pair, you must specify a symmetric encryption
|
3569
|
+
# KMS key to encrypt the private key in a data key pair. You cannot use
|
3570
|
+
# an asymmetric KMS key or a KMS key in a custom key store. To get the
|
3571
|
+
# type and origin of your KMS key, use the DescribeKey operation.
|
3361
3572
|
#
|
3362
3573
|
# Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve
|
3363
3574
|
# (ECC) data key pair. KMS recommends that your use ECC key pairs for
|
@@ -3375,13 +3586,13 @@ module Aws::KMS
|
|
3375
3586
|
# to decrypt the encrypted private key in the data key pair.
|
3376
3587
|
#
|
3377
3588
|
# `GenerateDataKeyPair` returns a unique data key pair for each request.
|
3378
|
-
# The bytes in the keys are not related to the caller
|
3379
|
-
# that is used to encrypt the private key. The public key
|
3380
|
-
# DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC
|
3381
|
-
# The private key is a DER-encoded PKCS8 PrivateKeyInfo, as
|
3382
|
-
# [RFC 5958][2].
|
3589
|
+
# The bytes in the keys are random; they are not related to the caller
|
3590
|
+
# or the KMS key that is used to encrypt the private key. The public key
|
3591
|
+
# is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC
|
3592
|
+
# 5280][1]. The private key is a DER-encoded PKCS8 PrivateKeyInfo, as
|
3593
|
+
# specified in [RFC 5958][2].
|
3383
3594
|
#
|
3384
|
-
# You can use
|
3595
|
+
# You can use an optional encryption context to add additional security
|
3385
3596
|
# to the encryption operation. If you specify an `EncryptionContext`,
|
3386
3597
|
# you must specify the same encryption context (a case-sensitive exact
|
3387
3598
|
# match) when decrypting the encrypted data key. Otherwise, the request
|
@@ -3390,8 +3601,8 @@ module Aws::KMS
|
|
3390
3601
|
# Service Developer Guide*.
|
3391
3602
|
#
|
3392
3603
|
# The KMS key that you use for this operation must be in a compatible
|
3393
|
-
# key state. For details, see [Key
|
3394
|
-
#
|
3604
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
3605
|
+
# Management Service Developer Guide*.
|
3395
3606
|
#
|
3396
3607
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
3397
3608
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -3424,13 +3635,14 @@ module Aws::KMS
|
|
3424
3635
|
# private key in the data key pair.
|
3425
3636
|
#
|
3426
3637
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3427
|
-
# that
|
3638
|
+
# that represent additional authenticated data. When you use an
|
3428
3639
|
# encryption context to encrypt data, you must specify the same (an
|
3429
3640
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3430
|
-
# encryption context is
|
3431
|
-
#
|
3641
|
+
# encryption context is supported only on operations with symmetric
|
3642
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
3643
|
+
# an encryption context is optional, but it is strongly recommended.
|
3432
3644
|
#
|
3433
|
-
# For more information, see [Encryption
|
3645
|
+
# For more information, see [Encryption context][1] in the *Key
|
3434
3646
|
# Management Service Developer Guide*.
|
3435
3647
|
#
|
3436
3648
|
#
|
@@ -3438,10 +3650,10 @@ module Aws::KMS
|
|
3438
3650
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
|
3439
3651
|
#
|
3440
3652
|
# @option params [required, String] :key_id
|
3441
|
-
# Specifies the symmetric KMS key that encrypts the private
|
3442
|
-
# data key pair. You cannot specify an asymmetric KMS key or
|
3443
|
-
# in a custom key store. To get the type and origin of your
|
3444
|
-
# the DescribeKey operation.
|
3653
|
+
# Specifies the symmetric encryption KMS key that encrypts the private
|
3654
|
+
# key in the data key pair. You cannot specify an asymmetric KMS key or
|
3655
|
+
# a KMS key in a custom key store. To get the type and origin of your
|
3656
|
+
# KMS key, use the DescribeKey operation.
|
3445
3657
|
#
|
3446
3658
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3447
3659
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3495,16 +3707,16 @@ module Aws::KMS
|
|
3495
3707
|
# @example Example: To generate an RSA key pair for encryption and decryption
|
3496
3708
|
#
|
3497
3709
|
# # This example generates an RSA data key pair for encryption and decryption. The operation returns a plaintext public key
|
3498
|
-
# # and private key, and a copy of the private key that is encrypted under a symmetric KMS key that you specify.
|
3710
|
+
# # and private key, and a copy of the private key that is encrypted under a symmetric encryption KMS key that you specify.
|
3499
3711
|
#
|
3500
3712
|
# resp = client.generate_data_key_pair({
|
3501
|
-
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ID of the symmetric KMS key that encrypts the private RSA key in the data key pair.
|
3713
|
+
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ID of the symmetric encryption KMS key that encrypts the private RSA key in the data key pair.
|
3502
3714
|
# key_pair_spec: "RSA_3072", # The requested key spec of the RSA data key pair.
|
3503
3715
|
# })
|
3504
3716
|
#
|
3505
3717
|
# resp.to_h outputs the following:
|
3506
3718
|
# {
|
3507
|
-
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric KMS key that was used to encrypt the private key.
|
3719
|
+
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric encryption KMS key that was used to encrypt the private key.
|
3508
3720
|
# key_pair_spec: "RSA_3072", # The actual key spec of the RSA data key pair.
|
3509
3721
|
# private_key_ciphertext_blob: "<binary data>", # The encrypted private key of the RSA data key pair.
|
3510
3722
|
# private_key_plaintext: "<binary data>", # The plaintext private key of the RSA data key pair.
|
@@ -3539,11 +3751,12 @@ module Aws::KMS
|
|
3539
3751
|
req.send_request(options)
|
3540
3752
|
end
|
3541
3753
|
|
3542
|
-
#
|
3543
|
-
#
|
3544
|
-
#
|
3545
|
-
#
|
3546
|
-
#
|
3754
|
+
# Returns a unique asymmetric data key pair for use outside of KMS. This
|
3755
|
+
# operation returns a plaintext public key and a copy of the private key
|
3756
|
+
# that is encrypted under the symmetric encryption KMS key you specify.
|
3757
|
+
# Unlike GenerateDataKeyPair, this operation does not return a plaintext
|
3758
|
+
# private key. The bytes in the keys are random; they are not related to
|
3759
|
+
# the caller or to the KMS key that is used to encrypt the private key.
|
3547
3760
|
#
|
3548
3761
|
# You can use the public key that `GenerateDataKeyPairWithoutPlaintext`
|
3549
3762
|
# returns to encrypt data or verify a signature outside of KMS. Then,
|
@@ -3551,10 +3764,10 @@ module Aws::KMS
|
|
3551
3764
|
# decrypt data or sign a message, you can use the Decrypt operation to
|
3552
3765
|
# decrypt the encrypted private key.
|
3553
3766
|
#
|
3554
|
-
# To generate a data key pair, you must specify a symmetric
|
3555
|
-
# encrypt the private key in a data key pair. You cannot use
|
3556
|
-
# asymmetric KMS key or a KMS key in a custom key store. To get the
|
3557
|
-
# and origin of your KMS key, use the DescribeKey operation.
|
3767
|
+
# To generate a data key pair, you must specify a symmetric encryption
|
3768
|
+
# KMS key to encrypt the private key in a data key pair. You cannot use
|
3769
|
+
# an asymmetric KMS key or a KMS key in a custom key store. To get the
|
3770
|
+
# type and origin of your KMS key, use the DescribeKey operation.
|
3558
3771
|
#
|
3559
3772
|
# Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve
|
3560
3773
|
# (ECC) data key pair. KMS recommends that your use ECC key pairs for
|
@@ -3568,7 +3781,7 @@ module Aws::KMS
|
|
3568
3781
|
# a DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC
|
3569
3782
|
# 5280][1].
|
3570
3783
|
#
|
3571
|
-
# You can use
|
3784
|
+
# You can use an optional encryption context to add additional security
|
3572
3785
|
# to the encryption operation. If you specify an `EncryptionContext`,
|
3573
3786
|
# you must specify the same encryption context (a case-sensitive exact
|
3574
3787
|
# match) when decrypting the encrypted data key. Otherwise, the request
|
@@ -3577,8 +3790,8 @@ module Aws::KMS
|
|
3577
3790
|
# Service Developer Guide*.
|
3578
3791
|
#
|
3579
3792
|
# The KMS key that you use for this operation must be in a compatible
|
3580
|
-
# key state. For details, see [Key
|
3581
|
-
#
|
3793
|
+
# key state. For details, see [Key states of KMS keys][3] in the *Key
|
3794
|
+
# Management Service Developer Guide*.
|
3582
3795
|
#
|
3583
3796
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
3584
3797
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -3611,13 +3824,14 @@ module Aws::KMS
|
|
3611
3824
|
# private key in the data key pair.
|
3612
3825
|
#
|
3613
3826
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3614
|
-
# that
|
3827
|
+
# that represent additional authenticated data. When you use an
|
3615
3828
|
# encryption context to encrypt data, you must specify the same (an
|
3616
3829
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3617
|
-
# encryption context is
|
3618
|
-
#
|
3830
|
+
# encryption context is supported only on operations with symmetric
|
3831
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
3832
|
+
# an encryption context is optional, but it is strongly recommended.
|
3619
3833
|
#
|
3620
|
-
# For more information, see [Encryption
|
3834
|
+
# For more information, see [Encryption context][1] in the *Key
|
3621
3835
|
# Management Service Developer Guide*.
|
3622
3836
|
#
|
3623
3837
|
#
|
@@ -3625,10 +3839,10 @@ module Aws::KMS
|
|
3625
3839
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
|
3626
3840
|
#
|
3627
3841
|
# @option params [required, String] :key_id
|
3628
|
-
# Specifies the KMS key that encrypts the private
|
3629
|
-
# pair. You
|
3630
|
-
#
|
3631
|
-
#
|
3842
|
+
# Specifies the symmetric encryption KMS key that encrypts the private
|
3843
|
+
# key in the data key pair. You cannot specify an asymmetric KMS key or
|
3844
|
+
# a KMS key in a custom key store. To get the type and origin of your
|
3845
|
+
# KMS key, use the DescribeKey operation.
|
3632
3846
|
#
|
3633
3847
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3634
3848
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3681,16 +3895,16 @@ module Aws::KMS
|
|
3681
3895
|
# @example Example: To generate an asymmetric data key pair without a plaintext key
|
3682
3896
|
#
|
3683
3897
|
# # This example returns an asymmetric elliptic curve (ECC) data key pair. The private key is encrypted under the symmetric
|
3684
|
-
# # KMS key that you specify. This operation doesn't return a plaintext (unencrypted) private key.
|
3898
|
+
# # encryption KMS key that you specify. This operation doesn't return a plaintext (unencrypted) private key.
|
3685
3899
|
#
|
3686
3900
|
# resp = client.generate_data_key_pair_without_plaintext({
|
3687
|
-
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The symmetric KMS key that encrypts the private key of the ECC data key pair.
|
3901
|
+
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The symmetric encryption KMS key that encrypts the private key of the ECC data key pair.
|
3688
3902
|
# key_pair_spec: "ECC_NIST_P521", # The requested key spec of the ECC asymmetric data key pair.
|
3689
3903
|
# })
|
3690
3904
|
#
|
3691
3905
|
# resp.to_h outputs the following:
|
3692
3906
|
# {
|
3693
|
-
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric KMS key that encrypted the private key in the ECC asymmetric data key pair.
|
3907
|
+
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric encryption KMS key that encrypted the private key in the ECC asymmetric data key pair.
|
3694
3908
|
# key_pair_spec: "ECC_NIST_P521", # The actual key spec of the ECC asymmetric data key pair.
|
3695
3909
|
# private_key_ciphertext_blob: "<binary data>", # The encrypted private key of the asymmetric ECC data key pair.
|
3696
3910
|
# public_key: "<binary data>", # The public key (plaintext).
|
@@ -3723,40 +3937,40 @@ module Aws::KMS
|
|
3723
3937
|
req.send_request(options)
|
3724
3938
|
end
|
3725
3939
|
|
3726
|
-
#
|
3727
|
-
#
|
3728
|
-
#
|
3729
|
-
#
|
3940
|
+
# Returns a unique symmetric data key for use outside of KMS. This
|
3941
|
+
# operation returns a data key that is encrypted under a symmetric
|
3942
|
+
# encryption KMS key that you specify. The bytes in the key are random;
|
3943
|
+
# they are not related to the caller or to the KMS key.
|
3730
3944
|
#
|
3731
3945
|
# `GenerateDataKeyWithoutPlaintext` is identical to the GenerateDataKey
|
3732
|
-
# operation except that
|
3946
|
+
# operation except that it does not return a plaintext copy of the data
|
3947
|
+
# key.
|
3948
|
+
#
|
3733
3949
|
# This operation is useful for systems that need to encrypt data at some
|
3734
3950
|
# point, but not immediately. When you need to encrypt the data, you
|
3735
|
-
# call the Decrypt operation on the encrypted copy of the key.
|
3736
|
-
#
|
3737
|
-
#
|
3738
|
-
#
|
3739
|
-
#
|
3740
|
-
#
|
3741
|
-
#
|
3742
|
-
#
|
3743
|
-
#
|
3744
|
-
# data key.
|
3745
|
-
#
|
3746
|
-
#
|
3747
|
-
#
|
3748
|
-
#
|
3749
|
-
#
|
3750
|
-
#
|
3751
|
-
#
|
3752
|
-
#
|
3753
|
-
# generate a data key. To get the type of your KMS key, use the
|
3754
|
-
# DescribeKey operation.
|
3951
|
+
# call the Decrypt operation on the encrypted copy of the key. It's
|
3952
|
+
# also useful in distributed systems with different levels of trust. For
|
3953
|
+
# example, you might store encrypted data in containers. One component
|
3954
|
+
# of your system creates new containers and stores an encrypted data key
|
3955
|
+
# with each container. Then, a different component puts the data into
|
3956
|
+
# the containers. That component first decrypts the data key, uses the
|
3957
|
+
# plaintext data key to encrypt data, puts the encrypted data into the
|
3958
|
+
# container, and then destroys the plaintext data key. In this system,
|
3959
|
+
# the component that creates the containers never sees the plaintext
|
3960
|
+
# data key.
|
3961
|
+
#
|
3962
|
+
# To request an asymmetric data key pair, use the GenerateDataKeyPair or
|
3963
|
+
# GenerateDataKeyPairWithoutPlaintext operations.
|
3964
|
+
#
|
3965
|
+
# To generate a data key, you must specify the symmetric encryption KMS
|
3966
|
+
# key that is used to encrypt the data key. You cannot use an asymmetric
|
3967
|
+
# KMS key or a key in a custom key store to generate a data key. To get
|
3968
|
+
# the type of your KMS key, use the DescribeKey operation.
|
3755
3969
|
#
|
3756
3970
|
# If the operation succeeds, you will find the encrypted copy of the
|
3757
3971
|
# data key in the `CiphertextBlob` field.
|
3758
3972
|
#
|
3759
|
-
# You can use
|
3973
|
+
# You can use an optional encryption context to add additional security
|
3760
3974
|
# to the encryption operation. If you specify an `EncryptionContext`,
|
3761
3975
|
# you must specify the same encryption context (a case-sensitive exact
|
3762
3976
|
# match) when decrypting the encrypted data key. Otherwise, the request
|
@@ -3765,8 +3979,8 @@ module Aws::KMS
|
|
3765
3979
|
# Service Developer Guide*.
|
3766
3980
|
#
|
3767
3981
|
# The KMS key that you use for this operation must be in a compatible
|
3768
|
-
# key state. For details, see [Key
|
3769
|
-
#
|
3982
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
3983
|
+
# Management Service Developer Guide*.
|
3770
3984
|
#
|
3771
3985
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
3772
3986
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -3794,7 +4008,10 @@ module Aws::KMS
|
|
3794
4008
|
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
3795
4009
|
#
|
3796
4010
|
# @option params [required, String] :key_id
|
3797
|
-
#
|
4011
|
+
# Specifies the symmetric encryption KMS key that encrypts the data key.
|
4012
|
+
# You cannot specify an asymmetric KMS key or a KMS key in a custom key
|
4013
|
+
# store. To get the type and origin of your KMS key, use the DescribeKey
|
4014
|
+
# operation.
|
3798
4015
|
#
|
3799
4016
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3800
4017
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3820,13 +4037,14 @@ module Aws::KMS
|
|
3820
4037
|
# data key.
|
3821
4038
|
#
|
3822
4039
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3823
|
-
# that
|
4040
|
+
# that represent additional authenticated data. When you use an
|
3824
4041
|
# encryption context to encrypt data, you must specify the same (an
|
3825
4042
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3826
|
-
# encryption context is
|
3827
|
-
#
|
4043
|
+
# encryption context is supported only on operations with symmetric
|
4044
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
4045
|
+
# an encryption context is optional, but it is strongly recommended.
|
3828
4046
|
#
|
3829
|
-
# For more information, see [Encryption
|
4047
|
+
# For more information, see [Encryption context][1] in the *Key
|
3830
4048
|
# Management Service Developer Guide*.
|
3831
4049
|
#
|
3832
4050
|
#
|
@@ -3904,6 +4122,126 @@ module Aws::KMS
|
|
3904
4122
|
req.send_request(options)
|
3905
4123
|
end
|
3906
4124
|
|
4125
|
+
# Generates a hash-based message authentication code (HMAC) for a
|
4126
|
+
# message using an HMAC KMS key and a MAC algorithm that the key
|
4127
|
+
# supports. The MAC algorithm computes the HMAC for the message and the
|
4128
|
+
# key as described in [RFC 2104][1].
|
4129
|
+
#
|
4130
|
+
# You can use the HMAC that this operation generates with the VerifyMac
|
4131
|
+
# operation to demonstrate that the original message has not changed.
|
4132
|
+
# Also, because a secret key is used to create the hash, you can verify
|
4133
|
+
# that the party that generated the hash has the required secret key.
|
4134
|
+
# This operation is part of KMS support for HMAC KMS keys. For details,
|
4135
|
+
# see [HMAC keys in KMS][2] in the <i> <i>Key Management Service
|
4136
|
+
# Developer Guide</i> </i>.
|
4137
|
+
#
|
4138
|
+
# The KMS key that you use for this operation must be in a compatible
|
4139
|
+
# key state. For details, see [Key states of KMS keys][3] in the *Key
|
4140
|
+
# Management Service Developer Guide*.
|
4141
|
+
#
|
4142
|
+
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
4143
|
+
# in a different Amazon Web Services account, specify the key ARN or
|
4144
|
+
# alias ARN in the value of the `KeyId` parameter.
|
4145
|
+
#
|
4146
|
+
# **Required permissions**\: [kms:GenerateMac][4] (key policy)
|
4147
|
+
#
|
4148
|
+
# **Related operations**\: VerifyMac
|
4149
|
+
#
|
4150
|
+
#
|
4151
|
+
#
|
4152
|
+
# [1]: https://datatracker.ietf.org/doc/html/rfc2104
|
4153
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
4154
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
4155
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
4156
|
+
#
|
4157
|
+
# @option params [required, String, StringIO, File] :message
|
4158
|
+
# The message to be hashed. Specify a message of up to 4,096 bytes.
|
4159
|
+
#
|
4160
|
+
# `GenerateMac` and VerifyMac do not provide special handling for
|
4161
|
+
# message digests. If you generate an HMAC for a hash digest of a
|
4162
|
+
# message, you must verify the HMAC of the same hash digest.
|
4163
|
+
#
|
4164
|
+
# @option params [required, String] :key_id
|
4165
|
+
# The HMAC KMS key to use in the operation. The MAC algorithm computes
|
4166
|
+
# the HMAC for the message and the key as described in [RFC 2104][1].
|
4167
|
+
#
|
4168
|
+
# To identify an HMAC KMS key, use the DescribeKey operation and see the
|
4169
|
+
# `KeySpec` field in the response.
|
4170
|
+
#
|
4171
|
+
#
|
4172
|
+
#
|
4173
|
+
# [1]: https://datatracker.ietf.org/doc/html/rfc2104
|
4174
|
+
#
|
4175
|
+
# @option params [required, String] :mac_algorithm
|
4176
|
+
# The MAC algorithm used in the operation.
|
4177
|
+
#
|
4178
|
+
# The algorithm must be compatible with the HMAC KMS key that you
|
4179
|
+
# specify. To find the MAC algorithms that your HMAC KMS key supports,
|
4180
|
+
# use the DescribeKey operation and see the `MacAlgorithms` field in the
|
4181
|
+
# `DescribeKey` response.
|
4182
|
+
#
|
4183
|
+
# @option params [Array<String>] :grant_tokens
|
4184
|
+
# A list of grant tokens.
|
4185
|
+
#
|
4186
|
+
# Use a grant token when your permission to call this operation comes
|
4187
|
+
# from a new grant that has not yet achieved *eventual consistency*. For
|
4188
|
+
# more information, see [Grant token][1] and [Using a grant token][2] in
|
4189
|
+
# the *Key Management Service Developer Guide*.
|
4190
|
+
#
|
4191
|
+
#
|
4192
|
+
#
|
4193
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
|
4194
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
|
4195
|
+
#
|
4196
|
+
# @return [Types::GenerateMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
4197
|
+
#
|
4198
|
+
# * {Types::GenerateMacResponse#mac #mac} => String
|
4199
|
+
# * {Types::GenerateMacResponse#mac_algorithm #mac_algorithm} => String
|
4200
|
+
# * {Types::GenerateMacResponse#key_id #key_id} => String
|
4201
|
+
#
|
4202
|
+
#
|
4203
|
+
# @example Example: To generate an HMAC for a message
|
4204
|
+
#
|
4205
|
+
# # This example generates an HMAC for a message, an HMAC KMS key, and a MAC algorithm. The algorithm must be supported by
|
4206
|
+
# # the specified HMAC KMS key.
|
4207
|
+
#
|
4208
|
+
# resp = client.generate_mac({
|
4209
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The HMAC KMS key input to the HMAC algorithm.
|
4210
|
+
# mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm requested for the operation.
|
4211
|
+
# message: "Hello World", # The message input to the HMAC algorithm.
|
4212
|
+
# })
|
4213
|
+
#
|
4214
|
+
# resp.to_h outputs the following:
|
4215
|
+
# {
|
4216
|
+
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the HMAC KMS key used in the operation.
|
4217
|
+
# mac: "<HMAC_TAG>", # The HMAC tag that results from this operation.
|
4218
|
+
# mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm used in the operation.
|
4219
|
+
# }
|
4220
|
+
#
|
4221
|
+
# @example Request syntax with placeholder values
|
4222
|
+
#
|
4223
|
+
# resp = client.generate_mac({
|
4224
|
+
# message: "data", # required
|
4225
|
+
# key_id: "KeyIdType", # required
|
4226
|
+
# mac_algorithm: "HMAC_SHA_224", # required, accepts HMAC_SHA_224, HMAC_SHA_256, HMAC_SHA_384, HMAC_SHA_512
|
4227
|
+
# grant_tokens: ["GrantTokenType"],
|
4228
|
+
# })
|
4229
|
+
#
|
4230
|
+
# @example Response structure
|
4231
|
+
#
|
4232
|
+
# resp.mac #=> String
|
4233
|
+
# resp.mac_algorithm #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
4234
|
+
# resp.key_id #=> String
|
4235
|
+
#
|
4236
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateMac AWS API Documentation
|
4237
|
+
#
|
4238
|
+
# @overload generate_mac(params = {})
|
4239
|
+
# @param [Hash] params ({})
|
4240
|
+
def generate_mac(params = {}, options = {})
|
4241
|
+
req = build_request(:generate_mac, params)
|
4242
|
+
req.send_request(options)
|
4243
|
+
end
|
4244
|
+
|
3907
4245
|
# Returns a random byte string that is cryptographically secure.
|
3908
4246
|
#
|
3909
4247
|
# By default, the random byte string is generated in KMS. To generate
|
@@ -4053,15 +4391,16 @@ module Aws::KMS
|
|
4053
4391
|
# Gets a Boolean value that indicates whether [automatic rotation of the
|
4054
4392
|
# key material][1] is enabled for the specified KMS key.
|
4055
4393
|
#
|
4056
|
-
# You cannot enable automatic rotation of [asymmetric KMS keys][2],
|
4057
|
-
# keys with [imported key material][
|
4058
|
-
# store][
|
4059
|
-
# [multi-Region keys][
|
4060
|
-
# rotation status for these KMS keys is
|
4394
|
+
# You cannot enable automatic rotation of [asymmetric KMS keys][2],
|
4395
|
+
# [HMAC KMS keys][3], KMS keys with [imported key material][4], or KMS
|
4396
|
+
# keys in a [custom key store][5]. To enable or disable automatic
|
4397
|
+
# rotation of a set of related [multi-Region keys][6], set the property
|
4398
|
+
# on the primary key. The key rotation status for these KMS keys is
|
4399
|
+
# always `false`.
|
4061
4400
|
#
|
4062
4401
|
# The KMS key that you use for this operation must be in a compatible
|
4063
|
-
# key state. For details, see [Key
|
4064
|
-
#
|
4402
|
+
# key state. For details, see [Key states of KMS keys][7] in the *Key
|
4403
|
+
# Management Service Developer Guide*.
|
4065
4404
|
#
|
4066
4405
|
# * Disabled: The key rotation status does not change when you disable a
|
4067
4406
|
# KMS key. However, while the KMS key is disabled, KMS does not rotate
|
@@ -4076,7 +4415,7 @@ module Aws::KMS
|
|
4076
4415
|
# a different Amazon Web Services account, specify the key ARN in the
|
4077
4416
|
# value of the `KeyId` parameter.
|
4078
4417
|
#
|
4079
|
-
# **Required permissions**\: [kms:GetKeyRotationStatus][
|
4418
|
+
# **Required permissions**\: [kms:GetKeyRotationStatus][8] (key policy)
|
4080
4419
|
#
|
4081
4420
|
# **Related operations:**
|
4082
4421
|
#
|
@@ -4087,12 +4426,13 @@ module Aws::KMS
|
|
4087
4426
|
#
|
4088
4427
|
#
|
4089
4428
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
|
4090
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4091
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4092
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4093
|
-
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4094
|
-
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4095
|
-
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4429
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
4430
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
4431
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
4432
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
4433
|
+
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
|
4434
|
+
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
4435
|
+
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
4096
4436
|
#
|
4097
4437
|
# @option params [required, String] :key_id
|
4098
4438
|
# Gets the rotation status for the specified KMS key.
|
@@ -4147,21 +4487,22 @@ module Aws::KMS
|
|
4147
4487
|
req.send_request(options)
|
4148
4488
|
end
|
4149
4489
|
|
4150
|
-
# Returns the items you need to import key material into a symmetric
|
4151
|
-
#
|
4152
|
-
#
|
4153
|
-
#
|
4490
|
+
# Returns the items you need to import key material into a symmetric
|
4491
|
+
# encryption KMS key. For more information about importing key material
|
4492
|
+
# into KMS, see [Importing key material][1] in the *Key Management
|
4493
|
+
# Service Developer Guide*.
|
4154
4494
|
#
|
4155
4495
|
# This operation returns a public key and an import token. Use the
|
4156
4496
|
# public key to encrypt the symmetric key material. Store the import
|
4157
4497
|
# token to send with a subsequent ImportKeyMaterial request.
|
4158
4498
|
#
|
4159
|
-
# You must specify the key ID of the symmetric KMS key into
|
4160
|
-
# will import key material. This KMS key's `Origin` must be
|
4161
|
-
# You must also specify the wrapping algorithm and type of
|
4162
|
-
# (public key) that you will use to encrypt the key
|
4163
|
-
# perform this operation on an asymmetric KMS key
|
4164
|
-
# different Amazon Web Services
|
4499
|
+
# You must specify the key ID of the symmetric encryption KMS key into
|
4500
|
+
# which you will import key material. This KMS key's `Origin` must be
|
4501
|
+
# `EXTERNAL`. You must also specify the wrapping algorithm and type of
|
4502
|
+
# wrapping key (public key) that you will use to encrypt the key
|
4503
|
+
# material. You cannot perform this operation on an asymmetric KMS key,
|
4504
|
+
# an HMAC KMS key, or on any KMS key in a different Amazon Web Services
|
4505
|
+
# account.
|
4165
4506
|
#
|
4166
4507
|
# To import key material, you must use the public key and import token
|
4167
4508
|
# from the same response. These items are valid for 24 hours. The
|
@@ -4171,8 +4512,8 @@ module Aws::KMS
|
|
4171
4512
|
# `GetParametersForImport` request.
|
4172
4513
|
#
|
4173
4514
|
# The KMS key that you use for this operation must be in a compatible
|
4174
|
-
# key state. For details, see [Key
|
4175
|
-
#
|
4515
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
4516
|
+
# Management Service Developer Guide*.
|
4176
4517
|
#
|
4177
4518
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
4178
4519
|
# key in a different Amazon Web Services account.
|
@@ -4193,8 +4534,8 @@ module Aws::KMS
|
|
4193
4534
|
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
4194
4535
|
#
|
4195
4536
|
# @option params [required, String] :key_id
|
4196
|
-
# The identifier of the symmetric KMS key into which you will
|
4197
|
-
# material. The `Origin` of the KMS key must be `EXTERNAL`.
|
4537
|
+
# The identifier of the symmetric encryption KMS key into which you will
|
4538
|
+
# import key material. The `Origin` of the KMS key must be `EXTERNAL`.
|
4198
4539
|
#
|
4199
4540
|
# Specify the key ID or key ARN of the KMS key.
|
4200
4541
|
#
|
@@ -4277,9 +4618,8 @@ module Aws::KMS
|
|
4277
4618
|
# callers with `kms:GetPublicKey` permission can download the public key
|
4278
4619
|
# of an asymmetric KMS key. You can share the public key to allow others
|
4279
4620
|
# to encrypt messages and verify signatures outside of KMS. For
|
4280
|
-
# information about
|
4281
|
-
#
|
4282
|
-
# Developer Guide*.
|
4621
|
+
# information about asymmetric KMS keys, see [Asymmetric KMS keys][1] in
|
4622
|
+
# the *Key Management Service Developer Guide*.
|
4283
4623
|
#
|
4284
4624
|
# You do not need to download the public key. Instead, you can use the
|
4285
4625
|
# public key within KMS by calling the Encrypt, ReEncrypt, or Verify
|
@@ -4311,8 +4651,8 @@ module Aws::KMS
|
|
4311
4651
|
# in a verification operation.
|
4312
4652
|
#
|
4313
4653
|
# The KMS key that you use for this operation must be in a compatible
|
4314
|
-
# key state. For details, see [Key
|
4315
|
-
#
|
4654
|
+
# key state. For details, see [Key states of KMS keys][7] in the *Key
|
4655
|
+
# Management Service Developer Guide*.
|
4316
4656
|
#
|
4317
4657
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
4318
4658
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -4412,9 +4752,9 @@ module Aws::KMS
|
|
4412
4752
|
#
|
4413
4753
|
# resp.key_id #=> String
|
4414
4754
|
# resp.public_key #=> String
|
4415
|
-
# resp.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT"
|
4416
|
-
# resp.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT"
|
4417
|
-
# resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT"
|
4755
|
+
# resp.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512"
|
4756
|
+
# resp.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512"
|
4757
|
+
# resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC"
|
4418
4758
|
# resp.encryption_algorithms #=> Array
|
4419
4759
|
# resp.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
4420
4760
|
# resp.signing_algorithms #=> Array
|
@@ -4429,16 +4769,17 @@ module Aws::KMS
|
|
4429
4769
|
req.send_request(options)
|
4430
4770
|
end
|
4431
4771
|
|
4432
|
-
# Imports key material into an existing symmetric
|
4433
|
-
# created without key material. After you successfully import
|
4434
|
-
# material into a KMS key, you can [reimport the same key
|
4435
|
-
# into that KMS key, but you cannot import different key
|
4436
|
-
#
|
4437
|
-
#
|
4438
|
-
#
|
4439
|
-
#
|
4440
|
-
#
|
4441
|
-
#
|
4772
|
+
# Imports key material into an existing symmetric encryption KMS key
|
4773
|
+
# that was created without key material. After you successfully import
|
4774
|
+
# key material into a KMS key, you can [reimport the same key
|
4775
|
+
# material][1] into that KMS key, but you cannot import different key
|
4776
|
+
# material.
|
4777
|
+
#
|
4778
|
+
# You cannot perform this operation on an asymmetric KMS key, an HMAC
|
4779
|
+
# KMS key, or on any KMS key in a different Amazon Web Services account.
|
4780
|
+
# For more information about creating KMS keys with no key material and
|
4781
|
+
# then importing key material, see [Importing Key Material][2] in the
|
4782
|
+
# *Key Management Service Developer Guide*.
|
4442
4783
|
#
|
4443
4784
|
# Before using this operation, call GetParametersForImport. Its response
|
4444
4785
|
# includes a public key and an import token. Use the public key to
|
@@ -4480,8 +4821,8 @@ module Aws::KMS
|
|
4480
4821
|
# Service Developer Guide*.
|
4481
4822
|
#
|
4482
4823
|
# The KMS key that you use for this operation must be in a compatible
|
4483
|
-
# key state. For details, see [Key
|
4484
|
-
#
|
4824
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
4825
|
+
# Management Service Developer Guide*.
|
4485
4826
|
#
|
4486
4827
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
4487
4828
|
# key in a different Amazon Web Services account.
|
@@ -4503,10 +4844,13 @@ module Aws::KMS
|
|
4503
4844
|
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
4504
4845
|
#
|
4505
4846
|
# @option params [required, String] :key_id
|
4506
|
-
# The identifier of the symmetric KMS key that receives the
|
4507
|
-
# material.
|
4508
|
-
#
|
4509
|
-
#
|
4847
|
+
# The identifier of the symmetric encryption KMS key that receives the
|
4848
|
+
# imported key material. This must be the same KMS key specified in the
|
4849
|
+
# `KeyID` parameter of the corresponding GetParametersForImport request.
|
4850
|
+
# The `Origin` of the KMS key must be `EXTERNAL`. You cannot perform
|
4851
|
+
# this operation on an asymmetric KMS key, an HMAC KMS key, a KMS key in
|
4852
|
+
# a custom key store, or on a KMS key in a different Amazon Web Services
|
4853
|
+
# account
|
4510
4854
|
#
|
4511
4855
|
# Specify the key ID or key ARN of the KMS key.
|
4512
4856
|
#
|
@@ -4748,7 +5092,7 @@ module Aws::KMS
|
|
4748
5092
|
# list by grant ID or grantee principal.
|
4749
5093
|
#
|
4750
5094
|
# For detailed information about grants, including grant terminology,
|
4751
|
-
# see [
|
5095
|
+
# see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
|
4752
5096
|
# Guide</i> </i>. For examples of working with grants in several
|
4753
5097
|
# programming languages, see [Programming grants][2].
|
4754
5098
|
#
|
@@ -4918,7 +5262,7 @@ module Aws::KMS
|
|
4918
5262
|
# resp.grants[0].retiring_principal #=> String
|
4919
5263
|
# resp.grants[0].issuing_account #=> String
|
4920
5264
|
# resp.grants[0].operations #=> Array
|
4921
|
-
# resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext"
|
5265
|
+
# resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac"
|
4922
5266
|
# resp.grants[0].constraints.encryption_context_subset #=> Hash
|
4923
5267
|
# resp.grants[0].constraints.encryption_context_subset["EncryptionContextKey"] #=> String
|
4924
5268
|
# resp.grants[0].constraints.encryption_context_equals #=> Hash
|
@@ -5274,7 +5618,7 @@ module Aws::KMS
|
|
5274
5618
|
# a grant, use the RetireGrant operation.
|
5275
5619
|
#
|
5276
5620
|
# For detailed information about grants, including grant terminology,
|
5277
|
-
# see [
|
5621
|
+
# see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
|
5278
5622
|
# Guide</i> </i>. For examples of working with grants in several
|
5279
5623
|
# programming languages, see [Programming grants][2].
|
5280
5624
|
#
|
@@ -5386,7 +5730,7 @@ module Aws::KMS
|
|
5386
5730
|
# resp.grants[0].retiring_principal #=> String
|
5387
5731
|
# resp.grants[0].issuing_account #=> String
|
5388
5732
|
# resp.grants[0].operations #=> Array
|
5389
|
-
# resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext"
|
5733
|
+
# resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac"
|
5390
5734
|
# resp.grants[0].constraints.encryption_context_subset #=> Hash
|
5391
5735
|
# resp.grants[0].constraints.encryption_context_subset["EncryptionContextKey"] #=> String
|
5392
5736
|
# resp.grants[0].constraints.encryption_context_equals #=> Hash
|
@@ -5536,7 +5880,7 @@ module Aws::KMS
|
|
5536
5880
|
# [encryption context][2] of a ciphertext.
|
5537
5881
|
#
|
5538
5882
|
# The `ReEncrypt` operation can decrypt ciphertext that was encrypted by
|
5539
|
-
# using
|
5883
|
+
# using a KMS key in an KMS operation, such as Encrypt or
|
5540
5884
|
# GenerateDataKey. It can also decrypt ciphertext that was encrypted by
|
5541
5885
|
# using the public key of an [asymmetric KMS key][3] outside of KMS.
|
5542
5886
|
# However, it cannot decrypt ciphertext produced by other libraries,
|
@@ -5554,25 +5898,24 @@ module Aws::KMS
|
|
5554
5898
|
# algorithm that was used. This information is required to decrypt the
|
5555
5899
|
# data.
|
5556
5900
|
#
|
5557
|
-
# * If your ciphertext was encrypted under a symmetric KMS
|
5558
|
-
# `SourceKeyId` parameter is optional. KMS can get this
|
5559
|
-
# from metadata that it adds to the symmetric ciphertext
|
5560
|
-
# feature adds durability to your implementation by
|
5561
|
-
# authorized users can decrypt ciphertext decades after
|
5562
|
-
# encrypted, even if they've lost track of the key ID.
|
5563
|
-
# specifying the source KMS key is always recommended as a
|
5564
|
-
# practice. When you use the `SourceKeyId` parameter to specify a
|
5565
|
-
# key, KMS uses only the KMS key you specify. If the ciphertext
|
5566
|
-
# encrypted under a different KMS key, the `ReEncrypt` operation
|
5901
|
+
# * If your ciphertext was encrypted under a symmetric encryption KMS
|
5902
|
+
# key, the `SourceKeyId` parameter is optional. KMS can get this
|
5903
|
+
# information from metadata that it adds to the symmetric ciphertext
|
5904
|
+
# blob. This feature adds durability to your implementation by
|
5905
|
+
# ensuring that authorized users can decrypt ciphertext decades after
|
5906
|
+
# it was encrypted, even if they've lost track of the key ID.
|
5907
|
+
# However, specifying the source KMS key is always recommended as a
|
5908
|
+
# best practice. When you use the `SourceKeyId` parameter to specify a
|
5909
|
+
# KMS key, KMS uses only the KMS key you specify. If the ciphertext
|
5910
|
+
# was encrypted under a different KMS key, the `ReEncrypt` operation
|
5567
5911
|
# fails. This practice ensures that you use the KMS key that you
|
5568
5912
|
# intend.
|
5569
5913
|
#
|
5570
5914
|
# * To reencrypt the data, you must use the `DestinationKeyId` parameter
|
5571
5915
|
# specify the KMS key that re-encrypts the data after it is decrypted.
|
5572
|
-
#
|
5573
|
-
#
|
5574
|
-
#
|
5575
|
-
# compatible with the KMS key.
|
5916
|
+
# If the destination KMS key is an asymmetric KMS key, you must also
|
5917
|
+
# provide the encryption algorithm. The algorithm that you choose must
|
5918
|
+
# be compatible with the KMS key.
|
5576
5919
|
#
|
5577
5920
|
# When you use an asymmetric KMS key to encrypt or reencrypt data, be
|
5578
5921
|
# sure to record the KMS key and encryption algorithm that you choose.
|
@@ -5582,14 +5925,15 @@ module Aws::KMS
|
|
5582
5925
|
# fails.
|
5583
5926
|
#
|
5584
5927
|
# You are not required to supply the key ID and encryption algorithm
|
5585
|
-
# when you decrypt with symmetric KMS keys because KMS
|
5586
|
-
# information in the ciphertext blob. KMS cannot store
|
5587
|
-
# ciphertext generated with asymmetric keys. The standard
|
5588
|
-
# asymmetric key ciphertext does not include configurable
|
5928
|
+
# when you decrypt with symmetric encryption KMS keys because KMS
|
5929
|
+
# stores this information in the ciphertext blob. KMS cannot store
|
5930
|
+
# metadata in ciphertext generated with asymmetric keys. The standard
|
5931
|
+
# format for asymmetric key ciphertext does not include configurable
|
5932
|
+
# fields.
|
5589
5933
|
#
|
5590
5934
|
# The KMS key that you use for this operation must be in a compatible
|
5591
|
-
# key state. For details, see [Key
|
5592
|
-
#
|
5935
|
+
# key state. For details, see [Key states of KMS keys][6] in the *Key
|
5936
|
+
# Management Service Developer Guide*.
|
5593
5937
|
#
|
5594
5938
|
# **Cross-account use**\: Yes. The source KMS key and destination KMS
|
5595
5939
|
# key can be in different Amazon Web Services accounts. Either or both
|
@@ -5640,13 +5984,14 @@ module Aws::KMS
|
|
5640
5984
|
# ciphertext.
|
5641
5985
|
#
|
5642
5986
|
# An *encryption context* is a collection of non-secret key-value pairs
|
5643
|
-
# that
|
5987
|
+
# that represent additional authenticated data. When you use an
|
5644
5988
|
# encryption context to encrypt data, you must specify the same (an
|
5645
5989
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
5646
|
-
# encryption context is
|
5647
|
-
#
|
5990
|
+
# encryption context is supported only on operations with symmetric
|
5991
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
5992
|
+
# an encryption context is optional, but it is strongly recommended.
|
5648
5993
|
#
|
5649
|
-
# For more information, see [Encryption
|
5994
|
+
# For more information, see [Encryption context][1] in the *Key
|
5650
5995
|
# Management Service Developer Guide*.
|
5651
5996
|
#
|
5652
5997
|
#
|
@@ -5655,14 +6000,18 @@ module Aws::KMS
|
|
5655
6000
|
#
|
5656
6001
|
# @option params [String] :source_key_id
|
5657
6002
|
# Specifies the KMS key that KMS will use to decrypt the ciphertext
|
5658
|
-
# before it is re-encrypted.
|
5659
|
-
#
|
6003
|
+
# before it is re-encrypted.
|
6004
|
+
#
|
6005
|
+
# Enter a key ID of the KMS key that was used to encrypt the ciphertext.
|
6006
|
+
# If you identify a different KMS key, the `ReEncrypt` operation throws
|
6007
|
+
# an `IncorrectKeyException`.
|
5660
6008
|
#
|
5661
6009
|
# This parameter is required only when the ciphertext was encrypted
|
5662
|
-
# under an asymmetric KMS key. If you used a symmetric
|
5663
|
-
# get the KMS key from metadata that it adds to the
|
5664
|
-
# blob. However, it is always recommended as a best
|
5665
|
-
# practice ensures that you use the KMS key that you
|
6010
|
+
# under an asymmetric KMS key. If you used a symmetric encryption KMS
|
6011
|
+
# key, KMS can get the KMS key from metadata that it adds to the
|
6012
|
+
# symmetric ciphertext blob. However, it is always recommended as a best
|
6013
|
+
# practice. This practice ensures that you use the KMS key that you
|
6014
|
+
# intend.
|
5666
6015
|
#
|
5667
6016
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
5668
6017
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -5685,9 +6034,9 @@ module Aws::KMS
|
|
5685
6034
|
#
|
5686
6035
|
# @option params [required, String] :destination_key_id
|
5687
6036
|
# A unique identifier for the KMS key that is used to reencrypt the
|
5688
|
-
# data. Specify a symmetric or asymmetric KMS key
|
5689
|
-
# value of `ENCRYPT_DECRYPT`. To find the `KeyUsage`
|
5690
|
-
# use the DescribeKey operation.
|
6037
|
+
# data. Specify a symmetric encryption KMS key or an asymmetric KMS key
|
6038
|
+
# with a `KeyUsage` value of `ENCRYPT_DECRYPT`. To find the `KeyUsage`
|
6039
|
+
# value of a KMS key, use the DescribeKey operation.
|
5691
6040
|
#
|
5692
6041
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
5693
6042
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -5713,17 +6062,18 @@ module Aws::KMS
|
|
5713
6062
|
# data.
|
5714
6063
|
#
|
5715
6064
|
# A destination encryption context is valid only when the destination
|
5716
|
-
# KMS key is a symmetric KMS key. The standard ciphertext
|
5717
|
-
# asymmetric KMS keys does not include fields for metadata.
|
6065
|
+
# KMS key is a symmetric encryption KMS key. The standard ciphertext
|
6066
|
+
# format for asymmetric KMS keys does not include fields for metadata.
|
5718
6067
|
#
|
5719
6068
|
# An *encryption context* is a collection of non-secret key-value pairs
|
5720
|
-
# that
|
6069
|
+
# that represent additional authenticated data. When you use an
|
5721
6070
|
# encryption context to encrypt data, you must specify the same (an
|
5722
6071
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
5723
|
-
# encryption context is
|
5724
|
-
#
|
6072
|
+
# encryption context is supported only on operations with symmetric
|
6073
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
6074
|
+
# an encryption context is optional, but it is strongly recommended.
|
5725
6075
|
#
|
5726
|
-
# For more information, see [Encryption
|
6076
|
+
# For more information, see [Encryption context][1] in the *Key
|
5727
6077
|
# Management Service Developer Guide*.
|
5728
6078
|
#
|
5729
6079
|
#
|
@@ -5733,8 +6083,8 @@ module Aws::KMS
|
|
5733
6083
|
# @option params [String] :source_encryption_algorithm
|
5734
6084
|
# Specifies the encryption algorithm that KMS will use to decrypt the
|
5735
6085
|
# ciphertext before it is reencrypted. The default value,
|
5736
|
-
# `SYMMETRIC_DEFAULT`, represents the algorithm used for symmetric
|
5737
|
-
# keys.
|
6086
|
+
# `SYMMETRIC_DEFAULT`, represents the algorithm used for symmetric
|
6087
|
+
# encryption KMS keys.
|
5738
6088
|
#
|
5739
6089
|
# Specify the same algorithm that was used to encrypt the ciphertext. If
|
5740
6090
|
# you specify a different algorithm, the decrypt attempt fails.
|
@@ -5746,7 +6096,7 @@ module Aws::KMS
|
|
5746
6096
|
# Specifies the encryption algorithm that KMS will use to reecrypt the
|
5747
6097
|
# data after it has decrypted it. The default value,
|
5748
6098
|
# `SYMMETRIC_DEFAULT`, represents the encryption algorithm used for
|
5749
|
-
# symmetric KMS keys.
|
6099
|
+
# symmetric encryption KMS keys.
|
5750
6100
|
#
|
5751
6101
|
# This parameter is required only when the destination KMS key is an
|
5752
6102
|
# asymmetric KMS key.
|
@@ -5837,7 +6187,7 @@ module Aws::KMS
|
|
5837
6187
|
# encrypt data in one Amazon Web Services Region and decrypt it in a
|
5838
6188
|
# different Amazon Web Services Region without re-encrypting the data or
|
5839
6189
|
# making a cross-Region call. For more information about multi-Region
|
5840
|
-
# keys, see [
|
6190
|
+
# keys, see [Multi-Region keys in KMS][1] in the *Key Management Service
|
5841
6191
|
# Developer Guide*.
|
5842
6192
|
#
|
5843
6193
|
# A *replica key* is a fully-functional KMS key that can be used
|
@@ -5848,8 +6198,8 @@ module Aws::KMS
|
|
5848
6198
|
# [automatic key rotation status][6]. KMS automatically synchronizes
|
5849
6199
|
# these shared properties among related multi-Region keys. All other
|
5850
6200
|
# properties of a replica key can differ, including its [key policy][7],
|
5851
|
-
# [tags][8], [aliases][9], and [
|
5852
|
-
# for KMS keys apply to each primary key and replica key.
|
6201
|
+
# [tags][8], [aliases][9], and [Key states of KMS keys][10]. KMS pricing
|
6202
|
+
# and quotas for KMS keys apply to each primary key and replica key.
|
5853
6203
|
#
|
5854
6204
|
# When this operation completes, the new replica key has a transient key
|
5855
6205
|
# state of `Creating`. This key state changes to `Enabled` (or
|
@@ -5859,9 +6209,17 @@ module Aws::KMS
|
|
5859
6209
|
# If you are creating and using the replica key programmatically, retry
|
5860
6210
|
# on `KMSInvalidStateException` or call `DescribeKey` to check its
|
5861
6211
|
# `KeyState` value before using it. For details about the `Creating` key
|
5862
|
-
# state, see [Key
|
5863
|
-
#
|
5864
|
-
#
|
6212
|
+
# state, see [Key states of KMS keys][10] in the *Key Management Service
|
6213
|
+
# Developer Guide*.
|
6214
|
+
#
|
6215
|
+
# You cannot create more than one replica of a primary key in any
|
6216
|
+
# Region. If the Region already includes a replica of the key you're
|
6217
|
+
# trying to replicate, `ReplicateKey` returns an
|
6218
|
+
# `AlreadyExistsException` error. If the key state of the existing
|
6219
|
+
# replica is `PendingDeletion`, you can cancel the scheduled key
|
6220
|
+
# deletion (CancelKeyDeletion) or wait for the key to be deleted. The
|
6221
|
+
# new replica key you create will have the same [shared properties][11]
|
6222
|
+
# as the original replica key.
|
5865
6223
|
#
|
5866
6224
|
# The CloudTrail log of a `ReplicateKey` operation records a
|
5867
6225
|
# `ReplicateKey` operation in the primary key's Region and a CreateKey
|
@@ -5914,6 +6272,7 @@ module Aws::KMS
|
|
5914
6272
|
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
|
5915
6273
|
# [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html
|
5916
6274
|
# [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
6275
|
+
# [11]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-sync-properties
|
5917
6276
|
#
|
5918
6277
|
# @option params [required, String] :key_id
|
5919
6278
|
# Identifies the multi-Region primary key that is being replicated. To
|
@@ -5941,24 +6300,33 @@ module Aws::KMS
|
|
5941
6300
|
# [KMS service endpoints][1] in the *Amazon Web Services General
|
5942
6301
|
# Reference*.
|
5943
6302
|
#
|
6303
|
+
# <note markdown="1"> HMAC KMS keys are not supported in all Amazon Web Services Regions. If
|
6304
|
+
# you try to replicate an HMAC KMS key in an Amazon Web Services Region
|
6305
|
+
# in which HMAC keys are not supported, the `ReplicateKey` operation
|
6306
|
+
# returns an `UnsupportedOperationException`. For a list of Regions in
|
6307
|
+
# which HMAC KMS keys are supported, see [HMAC keys in KMS][2] in the
|
6308
|
+
# *Key Management Service Developer Guide*.
|
6309
|
+
#
|
6310
|
+
# </note>
|
6311
|
+
#
|
5944
6312
|
# The replica must be in a different Amazon Web Services Region than its
|
5945
6313
|
# primary key and other replicas of that primary key, but in the same
|
5946
6314
|
# Amazon Web Services partition. KMS must be available in the replica
|
5947
6315
|
# Region. If the Region is not enabled by default, the Amazon Web
|
5948
|
-
# Services account must be enabled in the Region.
|
5949
|
-
#
|
5950
|
-
#
|
5951
|
-
#
|
5952
|
-
#
|
5953
|
-
#
|
5954
|
-
# Web Services General Reference*.
|
6316
|
+
# Services account must be enabled in the Region. For information about
|
6317
|
+
# Amazon Web Services partitions, see [Amazon Resource Names (ARNs)][3]
|
6318
|
+
# in the *Amazon Web Services General Reference*. For information about
|
6319
|
+
# enabling and disabling Regions, see [Enabling a Region][4] and
|
6320
|
+
# [Disabling a Region][5] in the *Amazon Web Services General
|
6321
|
+
# Reference*.
|
5955
6322
|
#
|
5956
6323
|
#
|
5957
6324
|
#
|
5958
6325
|
# [1]: https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region
|
5959
|
-
# [2]: https://docs.aws.amazon.com/
|
5960
|
-
# [3]: https://docs.aws.amazon.com/general/latest/gr/
|
5961
|
-
# [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-
|
6326
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
6327
|
+
# [3]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
|
6328
|
+
# [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
|
6329
|
+
# [5]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
|
5962
6330
|
#
|
5963
6331
|
# @option params [String] :policy
|
5964
6332
|
# The key policy to attach to the KMS key. This parameter is optional.
|
@@ -6032,8 +6400,8 @@ module Aws::KMS
|
|
6032
6400
|
# TagResource operation.
|
6033
6401
|
#
|
6034
6402
|
# <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
|
6035
|
-
# key. For details, see [
|
6036
|
-
#
|
6403
|
+
# key. For details, see [ABAC in KMS][1] in the *Key Management Service
|
6404
|
+
# Developer Guide*.
|
6037
6405
|
#
|
6038
6406
|
# </note>
|
6039
6407
|
#
|
@@ -6138,7 +6506,7 @@ module Aws::KMS
|
|
6138
6506
|
# resp.replica_key_metadata.creation_date #=> Time
|
6139
6507
|
# resp.replica_key_metadata.enabled #=> Boolean
|
6140
6508
|
# resp.replica_key_metadata.description #=> String
|
6141
|
-
# resp.replica_key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT"
|
6509
|
+
# resp.replica_key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC"
|
6142
6510
|
# resp.replica_key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating"
|
6143
6511
|
# resp.replica_key_metadata.deletion_date #=> Time
|
6144
6512
|
# resp.replica_key_metadata.valid_to #=> Time
|
@@ -6147,8 +6515,8 @@ module Aws::KMS
|
|
6147
6515
|
# resp.replica_key_metadata.cloud_hsm_cluster_id #=> String
|
6148
6516
|
# resp.replica_key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
|
6149
6517
|
# resp.replica_key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
|
6150
|
-
# resp.replica_key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT"
|
6151
|
-
# resp.replica_key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT"
|
6518
|
+
# resp.replica_key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512"
|
6519
|
+
# resp.replica_key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512"
|
6152
6520
|
# resp.replica_key_metadata.encryption_algorithms #=> Array
|
6153
6521
|
# resp.replica_key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
6154
6522
|
# resp.replica_key_metadata.signing_algorithms #=> Array
|
@@ -6161,6 +6529,8 @@ module Aws::KMS
|
|
6161
6529
|
# resp.replica_key_metadata.multi_region_configuration.replica_keys[0].arn #=> String
|
6162
6530
|
# resp.replica_key_metadata.multi_region_configuration.replica_keys[0].region #=> String
|
6163
6531
|
# resp.replica_key_metadata.pending_deletion_window_in_days #=> Integer
|
6532
|
+
# resp.replica_key_metadata.mac_algorithms #=> Array
|
6533
|
+
# resp.replica_key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
6164
6534
|
# resp.replica_policy #=> String
|
6165
6535
|
# resp.replica_tags #=> Array
|
6166
6536
|
# resp.replica_tags[0].tag_key #=> String
|
@@ -6182,14 +6552,13 @@ module Aws::KMS
|
|
6182
6552
|
#
|
6183
6553
|
# This operation can be called by the *retiring principal* for a grant,
|
6184
6554
|
# by the *grantee principal* if the grant allows the `RetireGrant`
|
6185
|
-
# operation, and by the Amazon Web Services account
|
6186
|
-
#
|
6187
|
-
#
|
6188
|
-
#
|
6189
|
-
# Developer Guide*.
|
6555
|
+
# operation, and by the Amazon Web Services account in which the grant
|
6556
|
+
# is created. It can also be called by principals to whom permission for
|
6557
|
+
# retiring a grant is delegated. For details, see [Retiring and revoking
|
6558
|
+
# grants][2] in the *Key Management Service Developer Guide*.
|
6190
6559
|
#
|
6191
6560
|
# For detailed information about grants, including grant terminology,
|
6192
|
-
# see [
|
6561
|
+
# see [Grants in KMS][3] in the <i> <i>Key Management Service Developer
|
6193
6562
|
# Guide</i> </i>. For examples of working with grants in several
|
6194
6563
|
# programming languages, see [Programming grants][4].
|
6195
6564
|
#
|
@@ -6287,7 +6656,7 @@ module Aws::KMS
|
|
6287
6656
|
# Service Developer Guide</i> </i>.
|
6288
6657
|
#
|
6289
6658
|
# For detailed information about grants, including grant terminology,
|
6290
|
-
# see [
|
6659
|
+
# see [Grants in KMS][3] in the <i> <i>Key Management Service Developer
|
6291
6660
|
# Guide</i> </i>. For examples of working with grants in several
|
6292
6661
|
# programming languages, see [Programming grants][4].
|
6293
6662
|
#
|
@@ -6404,8 +6773,8 @@ module Aws::KMS
|
|
6404
6773
|
# Guide*.
|
6405
6774
|
#
|
6406
6775
|
# The KMS key that you use for this operation must be in a compatible
|
6407
|
-
# key state. For details, see [Key
|
6408
|
-
#
|
6776
|
+
# key state. For details, see [Key states of KMS keys][5] in the *Key
|
6777
|
+
# Management Service Developer Guide*.
|
6409
6778
|
#
|
6410
6779
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
6411
6780
|
# key in a different Amazon Web Services account.
|
@@ -6499,11 +6868,11 @@ module Aws::KMS
|
|
6499
6868
|
end
|
6500
6869
|
|
6501
6870
|
# Creates a [digital signature][1] for a message or message digest by
|
6502
|
-
# using the private key in an asymmetric KMS key. To verify the
|
6871
|
+
# using the private key in an asymmetric signing KMS key. To verify the
|
6503
6872
|
# signature, use the Verify operation, or use the public key in the same
|
6504
|
-
# asymmetric KMS key outside of KMS. For information about
|
6505
|
-
#
|
6506
|
-
#
|
6873
|
+
# asymmetric KMS key outside of KMS. For information about asymmetric
|
6874
|
+
# KMS keys, see [Asymmetric KMS keys][2] in the *Key Management Service
|
6875
|
+
# Developer Guide*.
|
6507
6876
|
#
|
6508
6877
|
# Digital signatures are generated and verified by using asymmetric key
|
6509
6878
|
# pair, such as an RSA or ECC pair that is represented by an asymmetric
|
@@ -6537,8 +6906,8 @@ module Aws::KMS
|
|
6537
6906
|
# KMS.
|
6538
6907
|
#
|
6539
6908
|
# The KMS key that you use for this operation must be in a compatible
|
6540
|
-
# key state. For details, see [Key
|
6541
|
-
#
|
6909
|
+
# key state. For details, see [Key states of KMS keys][3] in the *Key
|
6910
|
+
# Management Service Developer Guide*.
|
6542
6911
|
#
|
6543
6912
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
6544
6913
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -6665,8 +7034,8 @@ module Aws::KMS
|
|
6665
7034
|
# Adds or edits tags on a [customer managed key][1].
|
6666
7035
|
#
|
6667
7036
|
# <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
|
6668
|
-
# key. For details, see [
|
6669
|
-
#
|
7037
|
+
# key. For details, see [ABAC in KMS][2] in the *Key Management Service
|
7038
|
+
# Developer Guide*.
|
6670
7039
|
#
|
6671
7040
|
# </note>
|
6672
7041
|
#
|
@@ -6688,8 +7057,8 @@ module Aws::KMS
|
|
6688
7057
|
# General Reference*.
|
6689
7058
|
#
|
6690
7059
|
# The KMS key that you use for this operation must be in a compatible
|
6691
|
-
# key state. For details, see [Key
|
6692
|
-
#
|
7060
|
+
# key state. For details, see [Key states of KMS keys][9] in the *Key
|
7061
|
+
# Management Service Developer Guide*.
|
6693
7062
|
#
|
6694
7063
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
6695
7064
|
# key in a different Amazon Web Services account.
|
@@ -6786,8 +7155,8 @@ module Aws::KMS
|
|
6786
7155
|
# specify the tag key and the KMS key.
|
6787
7156
|
#
|
6788
7157
|
# <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
|
6789
|
-
# key. For details, see [
|
6790
|
-
#
|
7158
|
+
# key. For details, see [ABAC in KMS][2] in the *Key Management Service
|
7159
|
+
# Developer Guide*.
|
6791
7160
|
#
|
6792
7161
|
# </note>
|
6793
7162
|
#
|
@@ -6802,8 +7171,8 @@ module Aws::KMS
|
|
6802
7171
|
# General Reference*.
|
6803
7172
|
#
|
6804
7173
|
# The KMS key that you use for this operation must be in a compatible
|
6805
|
-
# key state. For details, see [Key
|
6806
|
-
#
|
7174
|
+
# key state. For details, see [Key states of KMS keys][5] in the *Key
|
7175
|
+
# Management Service Developer Guide*.
|
6807
7176
|
#
|
6808
7177
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
6809
7178
|
# key in a different Amazon Web Services account.
|
@@ -6884,8 +7253,8 @@ module Aws::KMS
|
|
6884
7253
|
# Amazon Web Services account and Region.
|
6885
7254
|
#
|
6886
7255
|
# <note markdown="1"> Adding, deleting, or updating an alias can allow or deny permission to
|
6887
|
-
# the KMS key. For details, see [
|
6888
|
-
#
|
7256
|
+
# the KMS key. For details, see [ABAC in KMS][1] in the *Key Management
|
7257
|
+
# Service Developer Guide*.
|
6889
7258
|
#
|
6890
7259
|
# </note>
|
6891
7260
|
#
|
@@ -6907,8 +7276,8 @@ module Aws::KMS
|
|
6907
7276
|
# ListAliases operation.
|
6908
7277
|
#
|
6909
7278
|
# The KMS key that you use for this operation must be in a compatible
|
6910
|
-
# key state. For details, see [Key
|
6911
|
-
#
|
7279
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
7280
|
+
# Management Service Developer Guide*.
|
6912
7281
|
#
|
6913
7282
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
6914
7283
|
# key in a different Amazon Web Services account.
|
@@ -7173,8 +7542,8 @@ module Aws::KMS
|
|
7173
7542
|
# key, use DescribeKey.
|
7174
7543
|
#
|
7175
7544
|
# The KMS key that you use for this operation must be in a compatible
|
7176
|
-
# key state. For details, see [Key
|
7177
|
-
#
|
7545
|
+
# key state. For details, see [Key states of KMS keys][1] in the *Key
|
7546
|
+
# Management Service Developer Guide*.
|
7178
7547
|
#
|
7179
7548
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
7180
7549
|
# key in a different Amazon Web Services account.
|
@@ -7256,7 +7625,7 @@ module Aws::KMS
|
|
7256
7625
|
# encrypt data in one Amazon Web Services Region and decrypt it in a
|
7257
7626
|
# different Amazon Web Services Region without re-encrypting the data or
|
7258
7627
|
# making a cross-Region call. For more information about multi-Region
|
7259
|
-
# keys, see [
|
7628
|
+
# keys, see [Multi-Region keys in KMS][2] in the *Key Management Service
|
7260
7629
|
# Developer Guide*.
|
7261
7630
|
#
|
7262
7631
|
# The *primary key* of a multi-Region key is the source for properties
|
@@ -7286,9 +7655,8 @@ module Aws::KMS
|
|
7286
7655
|
# can use the keys in cryptographic operations, but you cannot replicate
|
7287
7656
|
# the new primary key or perform certain management operations, such as
|
7288
7657
|
# enabling or disabling these keys. For details about the `Updating` key
|
7289
|
-
# state, see [Key
|
7290
|
-
#
|
7291
|
-
# Service Developer Guide*.
|
7658
|
+
# state, see [Key states of KMS keys][9] in the *Key Management Service
|
7659
|
+
# Developer Guide*.
|
7292
7660
|
#
|
7293
7661
|
# This operation does not return any output. To verify that primary key
|
7294
7662
|
# is changed, use the DescribeKey operation.
|
@@ -7321,6 +7689,7 @@ module Aws::KMS
|
|
7321
7689
|
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin
|
7322
7690
|
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
|
7323
7691
|
# [8]: https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html
|
7692
|
+
# [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
7324
7693
|
#
|
7325
7694
|
# @option params [required, String] :key_id
|
7326
7695
|
# Identifies the current primary key. When the operation completes, this
|
@@ -7377,9 +7746,9 @@ module Aws::KMS
|
|
7377
7746
|
#
|
7378
7747
|
# A digital signature is generated by using the private key in an
|
7379
7748
|
# asymmetric KMS key. The signature is verified by using the public key
|
7380
|
-
# in the same asymmetric KMS key. For information about
|
7381
|
-
#
|
7382
|
-
#
|
7749
|
+
# in the same asymmetric KMS key. For information about asymmetric KMS
|
7750
|
+
# keys, see [Asymmetric KMS keys][1] in the *Key Management Service
|
7751
|
+
# Developer Guide*.
|
7383
7752
|
#
|
7384
7753
|
# To verify a digital signature, you can use the `Verify` operation.
|
7385
7754
|
# Specify the same asymmetric KMS key, message, and signing algorithm
|
@@ -7396,8 +7765,8 @@ module Aws::KMS
|
|
7396
7765
|
# signatures.
|
7397
7766
|
#
|
7398
7767
|
# The KMS key that you use for this operation must be in a compatible
|
7399
|
-
# key state. For details, see [Key
|
7400
|
-
#
|
7768
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
7769
|
+
# Management Service Developer Guide*.
|
7401
7770
|
#
|
7402
7771
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
7403
7772
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -7499,7 +7868,7 @@ module Aws::KMS
|
|
7499
7868
|
# resp.to_h outputs the following:
|
7500
7869
|
# {
|
7501
7870
|
# key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the asymmetric KMS key that was used to verify the digital signature.
|
7502
|
-
# signature_valid: true, # Indicates
|
7871
|
+
# signature_valid: true, # A value of 'true' Indicates that the signature was verified. If verification fails, the call to Verify fails.
|
7503
7872
|
# signing_algorithm: "ECDSA_SHA_384", # The signing algorithm that was used to verify the signature.
|
7504
7873
|
# }
|
7505
7874
|
#
|
@@ -7529,6 +7898,128 @@ module Aws::KMS
|
|
7529
7898
|
req.send_request(options)
|
7530
7899
|
end
|
7531
7900
|
|
7901
|
+
# Verifies the hash-based message authentication code (HMAC) for a
|
7902
|
+
# specified message, HMAC KMS key, and MAC algorithm. To verify the
|
7903
|
+
# HMAC, `VerifyMac` computes an HMAC using the message, HMAC KMS key,
|
7904
|
+
# and MAC algorithm that you specify, and compares the computed HMAC to
|
7905
|
+
# the HMAC that you specify. If the HMACs are identical, the
|
7906
|
+
# verification succeeds; otherwise, it fails.
|
7907
|
+
#
|
7908
|
+
# Verification indicates that the message hasn't changed since the HMAC
|
7909
|
+
# was calculated, and the specified key was used to generate and verify
|
7910
|
+
# the HMAC.
|
7911
|
+
#
|
7912
|
+
# This operation is part of KMS support for HMAC KMS keys. For details,
|
7913
|
+
# see [HMAC keys in KMS][1] in the *Key Management Service Developer
|
7914
|
+
# Guide*.
|
7915
|
+
#
|
7916
|
+
# The KMS key that you use for this operation must be in a compatible
|
7917
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
7918
|
+
# Management Service Developer Guide*.
|
7919
|
+
#
|
7920
|
+
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
7921
|
+
# in a different Amazon Web Services account, specify the key ARN or
|
7922
|
+
# alias ARN in the value of the `KeyId` parameter.
|
7923
|
+
#
|
7924
|
+
# **Required permissions**\: [kms:VerifyMac][3] (key policy)
|
7925
|
+
#
|
7926
|
+
# **Related operations**\: GenerateMac
|
7927
|
+
#
|
7928
|
+
#
|
7929
|
+
#
|
7930
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
7931
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
7932
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
7933
|
+
#
|
7934
|
+
# @option params [required, String, StringIO, File] :message
|
7935
|
+
# The message that will be used in the verification. Enter the same
|
7936
|
+
# message that was used to generate the HMAC.
|
7937
|
+
#
|
7938
|
+
# GenerateMac and `VerifyMac` do not provide special handling for
|
7939
|
+
# message digests. If you generated an HMAC for a hash digest of a
|
7940
|
+
# message, you must verify the HMAC for the same hash digest.
|
7941
|
+
#
|
7942
|
+
# @option params [required, String] :key_id
|
7943
|
+
# The KMS key that will be used in the verification.
|
7944
|
+
#
|
7945
|
+
# Enter a key ID of the KMS key that was used to generate the HMAC. If
|
7946
|
+
# you identify a different KMS key, the `VerifyMac` operation fails.
|
7947
|
+
#
|
7948
|
+
# @option params [required, String] :mac_algorithm
|
7949
|
+
# The MAC algorithm that will be used in the verification. Enter the
|
7950
|
+
# same MAC algorithm that was used to compute the HMAC. This algorithm
|
7951
|
+
# must be supported by the HMAC KMS key identified by the `KeyId`
|
7952
|
+
# parameter.
|
7953
|
+
#
|
7954
|
+
# @option params [required, String, StringIO, File] :mac
|
7955
|
+
# The HMAC to verify. Enter the HMAC that was generated by the
|
7956
|
+
# GenerateMac operation when you specified the same message, HMAC KMS
|
7957
|
+
# key, and MAC algorithm as the values specified in this request.
|
7958
|
+
#
|
7959
|
+
# @option params [Array<String>] :grant_tokens
|
7960
|
+
# A list of grant tokens.
|
7961
|
+
#
|
7962
|
+
# Use a grant token when your permission to call this operation comes
|
7963
|
+
# from a new grant that has not yet achieved *eventual consistency*. For
|
7964
|
+
# more information, see [Grant token][1] and [Using a grant token][2] in
|
7965
|
+
# the *Key Management Service Developer Guide*.
|
7966
|
+
#
|
7967
|
+
#
|
7968
|
+
#
|
7969
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
|
7970
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
|
7971
|
+
#
|
7972
|
+
# @return [Types::VerifyMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
7973
|
+
#
|
7974
|
+
# * {Types::VerifyMacResponse#key_id #key_id} => String
|
7975
|
+
# * {Types::VerifyMacResponse#mac_valid #mac_valid} => Boolean
|
7976
|
+
# * {Types::VerifyMacResponse#mac_algorithm #mac_algorithm} => String
|
7977
|
+
#
|
7978
|
+
#
|
7979
|
+
# @example Example: To verify an HMAC
|
7980
|
+
#
|
7981
|
+
# # This example verifies an HMAC for a particular message, HMAC KMS keys, and MAC algorithm. A value of 'true' in the
|
7982
|
+
# # MacValid value in the response indicates that the HMAC is valid.
|
7983
|
+
#
|
7984
|
+
# resp = client.verify_mac({
|
7985
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The HMAC KMS key input to the HMAC algorithm.
|
7986
|
+
# mac: "<HMAC_TAG>", # The HMAC to be verified.
|
7987
|
+
# mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm requested for the operation.
|
7988
|
+
# message: "Hello World", # The message input to the HMAC algorithm.
|
7989
|
+
# })
|
7990
|
+
#
|
7991
|
+
# resp.to_h outputs the following:
|
7992
|
+
# {
|
7993
|
+
# key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the HMAC key used in the operation.
|
7994
|
+
# mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm used in the operation.
|
7995
|
+
# mac_valid: true, # A value of 'true' indicates that verification succeeded. If verification fails, the call to VerifyMac fails.
|
7996
|
+
# }
|
7997
|
+
#
|
7998
|
+
# @example Request syntax with placeholder values
|
7999
|
+
#
|
8000
|
+
# resp = client.verify_mac({
|
8001
|
+
# message: "data", # required
|
8002
|
+
# key_id: "KeyIdType", # required
|
8003
|
+
# mac_algorithm: "HMAC_SHA_224", # required, accepts HMAC_SHA_224, HMAC_SHA_256, HMAC_SHA_384, HMAC_SHA_512
|
8004
|
+
# mac: "data", # required
|
8005
|
+
# grant_tokens: ["GrantTokenType"],
|
8006
|
+
# })
|
8007
|
+
#
|
8008
|
+
# @example Response structure
|
8009
|
+
#
|
8010
|
+
# resp.key_id #=> String
|
8011
|
+
# resp.mac_valid #=> Boolean
|
8012
|
+
# resp.mac_algorithm #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
8013
|
+
#
|
8014
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyMac AWS API Documentation
|
8015
|
+
#
|
8016
|
+
# @overload verify_mac(params = {})
|
8017
|
+
# @param [Hash] params ({})
|
8018
|
+
def verify_mac(params = {}, options = {})
|
8019
|
+
req = build_request(:verify_mac, params)
|
8020
|
+
req.send_request(options)
|
8021
|
+
end
|
8022
|
+
|
7532
8023
|
# @!endgroup
|
7533
8024
|
|
7534
8025
|
# @param params ({})
|
@@ -7542,7 +8033,7 @@ module Aws::KMS
|
|
7542
8033
|
params: params,
|
7543
8034
|
config: config)
|
7544
8035
|
context[:gem_name] = 'aws-sdk-kms'
|
7545
|
-
context[:gem_version] = '1.
|
8036
|
+
context[:gem_version] = '1.56.0'
|
7546
8037
|
Seahorse::Client::Request.new(handlers, context)
|
7547
8038
|
end
|
7548
8039
|
|