aws-sdk-kms 1.55.0 → 1.58.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 +1296 -621
- data/lib/aws-sdk-kms/client_api.rb +91 -3
- data/lib/aws-sdk-kms/errors.rb +16 -0
- data/lib/aws-sdk-kms/types.rb +576 -234
- data/lib/aws-sdk-kms.rb +1 -1
- metadata +2 -2
data/lib/aws-sdk-kms/client.rb
CHANGED
@@ -370,8 +370,8 @@ module Aws::KMS
|
|
370
370
|
# Developer Guide*.
|
371
371
|
#
|
372
372
|
# The KMS key that you use for this operation must be in a compatible
|
373
|
-
# key state. For details, see [Key
|
374
|
-
#
|
373
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
374
|
+
# Management Service Developer Guide*.
|
375
375
|
#
|
376
376
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
377
377
|
# key in a different Amazon Web Services account.
|
@@ -544,8 +544,8 @@ module Aws::KMS
|
|
544
544
|
# Creates a friendly name for a KMS key.
|
545
545
|
#
|
546
546
|
# <note markdown="1"> Adding, deleting, or updating an alias can allow or deny permission to
|
547
|
-
# the KMS key. For details, see [
|
548
|
-
#
|
547
|
+
# the KMS key. For details, see [ABAC in KMS][1] in the *Key Management
|
548
|
+
# Service Developer Guide*.
|
549
549
|
#
|
550
550
|
# </note>
|
551
551
|
#
|
@@ -570,8 +570,8 @@ module Aws::KMS
|
|
570
570
|
# created, use the ListAliases operation.
|
571
571
|
#
|
572
572
|
# The KMS key that you use for this operation must be in a compatible
|
573
|
-
# key state. For details, see [Key
|
574
|
-
#
|
573
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
574
|
+
# Management Service Developer Guide*.
|
575
575
|
#
|
576
576
|
# **Cross-account use**\: No. You cannot perform this operation on an
|
577
577
|
# alias in a different Amazon Web Services account.
|
@@ -674,7 +674,7 @@ module Aws::KMS
|
|
674
674
|
# Creates a [custom key store][1] that is associated with an [CloudHSM
|
675
675
|
# cluster][2] that you own and manage.
|
676
676
|
#
|
677
|
-
# This operation is part of the [
|
677
|
+
# This operation is part of the [custom key store feature][1] feature in
|
678
678
|
# KMS, which combines the convenience and extensive integration of KMS
|
679
679
|
# with the isolation and control of a single-tenant key store.
|
680
680
|
#
|
@@ -724,7 +724,7 @@ module Aws::KMS
|
|
724
724
|
# Specifies a friendly name for the custom key store. The name must be
|
725
725
|
# unique in your Amazon Web Services account.
|
726
726
|
#
|
727
|
-
# @option params [
|
727
|
+
# @option params [String] :cloud_hsm_cluster_id
|
728
728
|
# Identifies the CloudHSM cluster for the custom key store. Enter the
|
729
729
|
# cluster ID of any active CloudHSM cluster that is not already
|
730
730
|
# associated with a custom key store. To find the cluster ID, use the
|
@@ -734,7 +734,7 @@ module Aws::KMS
|
|
734
734
|
#
|
735
735
|
# [1]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html
|
736
736
|
#
|
737
|
-
# @option params [
|
737
|
+
# @option params [String] :trust_anchor_certificate
|
738
738
|
# Enter the content of the trust anchor certificate for the cluster.
|
739
739
|
# This is the content of the `customerCA.crt` file that you created when
|
740
740
|
# you [initialized the cluster][1].
|
@@ -743,7 +743,7 @@ module Aws::KMS
|
|
743
743
|
#
|
744
744
|
# [1]: https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html
|
745
745
|
#
|
746
|
-
# @option params [
|
746
|
+
# @option params [String] :key_store_password
|
747
747
|
# Enter the password of the [ `kmsuser` crypto user (CU) account][1] in
|
748
748
|
# the specified CloudHSM cluster. KMS logs into the cluster as this user
|
749
749
|
# to manage key material on your behalf.
|
@@ -783,9 +783,9 @@ module Aws::KMS
|
|
783
783
|
#
|
784
784
|
# resp = client.create_custom_key_store({
|
785
785
|
# custom_key_store_name: "CustomKeyStoreNameType", # required
|
786
|
-
# cloud_hsm_cluster_id: "CloudHsmClusterIdType",
|
787
|
-
# trust_anchor_certificate: "TrustAnchorCertificateType",
|
788
|
-
# key_store_password: "KeyStorePasswordType",
|
786
|
+
# cloud_hsm_cluster_id: "CloudHsmClusterIdType",
|
787
|
+
# trust_anchor_certificate: "TrustAnchorCertificateType",
|
788
|
+
# key_store_password: "KeyStorePasswordType",
|
789
789
|
# })
|
790
790
|
#
|
791
791
|
# @example Response structure
|
@@ -812,7 +812,7 @@ module Aws::KMS
|
|
812
812
|
# and delete it without changing your key policies or IAM policies.
|
813
813
|
#
|
814
814
|
# For detailed information about grants, including grant terminology,
|
815
|
-
# see [
|
815
|
+
# see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
|
816
816
|
# Guide</i> </i>. For examples of working with grants in several
|
817
817
|
# programming languages, see [Programming grants][2].
|
818
818
|
#
|
@@ -835,8 +835,8 @@ module Aws::KMS
|
|
835
835
|
# the ListGrants or ListRetirableGrants operations.
|
836
836
|
#
|
837
837
|
# The KMS key that you use for this operation must be in a compatible
|
838
|
-
# key state. For details, see [Key
|
839
|
-
#
|
838
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
839
|
+
# Management Service Developer Guide*.
|
840
840
|
#
|
841
841
|
# **Cross-account use**\: Yes. To perform this operation on a KMS key in
|
842
842
|
# a different Amazon Web Services account, specify the key ARN in the
|
@@ -921,12 +921,13 @@ module Aws::KMS
|
|
921
921
|
# @option params [required, Array<String>] :operations
|
922
922
|
# A list of operations that the grant permits.
|
923
923
|
#
|
924
|
-
#
|
925
|
-
#
|
926
|
-
#
|
927
|
-
#
|
928
|
-
#
|
929
|
-
#
|
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*.
|
930
931
|
#
|
931
932
|
#
|
932
933
|
#
|
@@ -938,27 +939,38 @@ module Aws::KMS
|
|
938
939
|
# KMS supports the `EncryptionContextEquals` and
|
939
940
|
# `EncryptionContextSubset` grant constraints. Each constraint value can
|
940
941
|
# include up to 8 encryption context pairs. The encryption context value
|
941
|
-
# in each constraint cannot exceed 384 characters.
|
942
|
-
#
|
943
|
-
# These grant constraints allow the permissions in the grant only when
|
944
|
-
# the encryption context in the request matches
|
945
|
-
# (`EncryptionContextEquals`) or includes (`EncryptionContextSubset`)
|
946
|
-
# the encryption context specified in this structure. For information
|
947
|
-
# 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
|
948
944
|
# Management Service Developer Guide*. For more information about
|
949
|
-
# encryption context, see [Encryption
|
945
|
+
# encryption context, see [Encryption context][2] in the <i> <i>Key
|
950
946
|
# Management Service Developer Guide</i> </i>.
|
951
947
|
#
|
952
|
-
# The encryption context grant constraints
|
953
|
-
#
|
954
|
-
#
|
955
|
-
#
|
956
|
-
#
|
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
|
+
#
|
957
968
|
#
|
958
969
|
#
|
959
970
|
#
|
960
971
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints
|
961
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
|
962
974
|
#
|
963
975
|
# @option params [Array<String>] :grant_tokens
|
964
976
|
# A list of grant tokens.
|
@@ -1020,7 +1032,7 @@ module Aws::KMS
|
|
1020
1032
|
# key_id: "KeyIdType", # required
|
1021
1033
|
# grantee_principal: "PrincipalIdType", # required
|
1022
1034
|
# retiring_principal: "PrincipalIdType",
|
1023
|
-
# 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
|
1024
1036
|
# constraints: {
|
1025
1037
|
# encryption_context_subset: {
|
1026
1038
|
# "EncryptionContextKey" => "EncryptionContextValue",
|
@@ -1050,35 +1062,37 @@ module Aws::KMS
|
|
1050
1062
|
# Creates a unique customer managed [KMS key][1] in your Amazon Web
|
1051
1063
|
# Services account and Region.
|
1052
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
|
+
#
|
1053
1069
|
# <note markdown="1"> KMS is replacing the term *customer master key (CMK)* with *KMS key*
|
1054
1070
|
# and *KMS key*. The concept has not changed. To prevent breaking
|
1055
1071
|
# changes, KMS is keeping some variations of this term.
|
1056
1072
|
#
|
1057
1073
|
# </note>
|
1058
1074
|
#
|
1059
|
-
#
|
1060
|
-
# asymmetric KMS keys.
|
1075
|
+
# To create different types of KMS keys, use the following guidance:
|
1061
1076
|
#
|
1062
|
-
#
|
1063
|
-
# leaves KMS unencrypted. To use the KMS key, you must call KMS. You
|
1064
|
-
# can use a symmetric KMS key to encrypt and decrypt small amounts of
|
1065
|
-
# data, but they are typically used to generate [data keys][2] and
|
1066
|
-
# [data keys pairs][3]. For details, see GenerateDataKey and
|
1067
|
-
# GenerateDataKeyPair.
|
1077
|
+
# Symmetric encryption KMS key
|
1068
1078
|
#
|
1069
|
-
#
|
1070
|
-
#
|
1071
|
-
#
|
1072
|
-
#
|
1073
|
-
#
|
1074
|
-
#
|
1075
|
-
#
|
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. For
|
1083
|
+
# technical details, see [ SYMMETRIC\_DEFAULT key spec][2] in the *Key
|
1084
|
+
# Management Service Developer Guide*.
|
1085
|
+
#
|
1086
|
+
# If you need a key for basic encryption and decryption or you are
|
1087
|
+
# creating a KMS key to protect your resources in an Amazon Web
|
1088
|
+
# Services service, create a symmetric encryption KMS key. The key
|
1089
|
+
# material in a symmetric encryption key never leaves KMS unencrypted.
|
1090
|
+
# You can use a symmetric encryption KMS key to encrypt and decrypt
|
1091
|
+
# data up to 4,096 bytes, but they are typically used to generate data
|
1092
|
+
# keys and data keys pairs. For details, see GenerateDataKey and
|
1093
|
+
# GenerateDataKeyPair.
|
1076
1094
|
#
|
1077
|
-
# For information about symmetric and asymmetric KMS keys, see [Using
|
1078
|
-
# Symmetric and Asymmetric KMS keys][4] in the *Key Management Service
|
1079
|
-
# Developer Guide*.
|
1080
1095
|
#
|
1081
|
-
# To create different types of KMS keys, use the following guidance:
|
1082
1096
|
#
|
1083
1097
|
# Asymmetric KMS keys
|
1084
1098
|
#
|
@@ -1088,14 +1102,38 @@ module Aws::KMS
|
|
1088
1102
|
# to encrypt and decrypt or sign and verify. You can't change these
|
1089
1103
|
# properties after the KMS key is created.
|
1090
1104
|
#
|
1105
|
+
# Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC)
|
1106
|
+
# key pair, or an SM2 key pair (China Regions only). The private key
|
1107
|
+
# in an asymmetric KMS key never leaves KMS unencrypted. However, you
|
1108
|
+
# can use the GetPublicKey operation to download the public key so it
|
1109
|
+
# can be used outside of KMS. KMS keys with RSA or SM2 key pairs can
|
1110
|
+
# be used to encrypt or decrypt data or sign and verify messages (but
|
1111
|
+
# not both). KMS keys with ECC key pairs can be used only to sign and
|
1112
|
+
# verify messages. For information about asymmetric KMS keys, see
|
1113
|
+
# [Asymmetric KMS keys][3] in the *Key Management Service Developer
|
1114
|
+
# Guide*.
|
1091
1115
|
#
|
1092
1116
|
#
|
1093
|
-
# Symmetric KMS keys
|
1094
1117
|
#
|
1095
|
-
#
|
1096
|
-
#
|
1097
|
-
#
|
1098
|
-
#
|
1118
|
+
# HMAC KMS key
|
1119
|
+
#
|
1120
|
+
# : To create an HMAC KMS key, set the `KeySpec` parameter to a key spec
|
1121
|
+
# value for HMAC KMS keys. Then set the `KeyUsage` parameter to
|
1122
|
+
# `GENERATE_VERIFY_MAC`. You must set the key usage even though
|
1123
|
+
# `GENERATE_VERIFY_MAC` is the only valid key usage value for HMAC KMS
|
1124
|
+
# keys. You can't change these properties after the KMS key is
|
1125
|
+
# created.
|
1126
|
+
#
|
1127
|
+
# HMAC KMS keys are symmetric keys that never leave KMS unencrypted.
|
1128
|
+
# You can use HMAC keys to generate (GenerateMac) and verify
|
1129
|
+
# (VerifyMac) HMAC codes for messages up to 4096 bytes.
|
1130
|
+
#
|
1131
|
+
# HMAC KMS keys are not supported in all Amazon Web Services Regions.
|
1132
|
+
# If you try to create an HMAC KMS key in an Amazon Web Services
|
1133
|
+
# Region in which HMAC keys are not supported, the `CreateKey`
|
1134
|
+
# operation returns an `UnsupportedOperationException`. For a list of
|
1135
|
+
# Regions in which HMAC KMS keys are supported, see [HMAC keys in
|
1136
|
+
# KMS][4] in the *Key Management Service Developer Guide*.
|
1099
1137
|
#
|
1100
1138
|
#
|
1101
1139
|
#
|
@@ -1110,6 +1148,12 @@ module Aws::KMS
|
|
1110
1148
|
# operation. To change a replica key to a primary key, and its primary
|
1111
1149
|
# key to a replica key, use the UpdatePrimaryRegion operation.
|
1112
1150
|
#
|
1151
|
+
# You can create multi-Region KMS keys for all supported KMS key
|
1152
|
+
# types: symmetric encryption KMS keys, HMAC KMS keys, asymmetric
|
1153
|
+
# encryption KMS keys, and asymmetric signing KMS keys. You can also
|
1154
|
+
# create multi-Region keys with imported key material. However, you
|
1155
|
+
# can't create multi-Region keys in a custom key store.
|
1156
|
+
#
|
1113
1157
|
# This operation supports *multi-Region keys*, an KMS feature that
|
1114
1158
|
# lets you create multiple interoperable KMS keys in different Amazon
|
1115
1159
|
# Web Services Regions. Because these KMS keys have the same key ID,
|
@@ -1117,49 +1161,49 @@ module Aws::KMS
|
|
1117
1161
|
# to encrypt data in one Amazon Web Services Region and decrypt it in
|
1118
1162
|
# a different Amazon Web Services Region without re-encrypting the
|
1119
1163
|
# data or making a cross-Region call. For more information about
|
1120
|
-
# multi-Region keys, see [
|
1164
|
+
# multi-Region keys, see [Multi-Region keys in KMS][5] in the *Key
|
1121
1165
|
# Management Service Developer Guide*.
|
1122
1166
|
#
|
1123
|
-
# You can create symmetric and asymmetric multi-Region keys and
|
1124
|
-
# multi-Region keys with imported key material. You cannot create
|
1125
|
-
# multi-Region keys in a custom key store.
|
1126
|
-
#
|
1127
1167
|
#
|
1128
1168
|
#
|
1129
|
-
# : To import your own key material, begin by creating a symmetric
|
1130
|
-
# key with no key material. To do this, use the
|
1131
|
-
# `CreateKey` with a value of `EXTERNAL`. Next,
|
1132
|
-
# GetParametersForImport operation to get a public key and import
|
1169
|
+
# : To import your own key material, begin by creating a symmetric
|
1170
|
+
# encryption KMS key with no key material. To do this, use the
|
1171
|
+
# `Origin` parameter of `CreateKey` with a value of `EXTERNAL`. Next,
|
1172
|
+
# use GetParametersForImport operation to get a public key and import
|
1133
1173
|
# token, and use the public key to encrypt your key material. Then,
|
1134
1174
|
# use ImportKeyMaterial with your import token to import the key
|
1135
1175
|
# material. For step-by-step instructions, see [Importing Key
|
1136
1176
|
# Material][6] in the <i> <i>Key Management Service Developer
|
1137
|
-
# Guide</i> </i>.
|
1138
|
-
#
|
1177
|
+
# Guide</i> </i>.
|
1178
|
+
#
|
1179
|
+
# This feature supports only symmetric encryption KMS keys, including
|
1180
|
+
# multi-Region symmetric encryption KMS keys. You cannot import key
|
1181
|
+
# material into any other type of KMS key.
|
1139
1182
|
#
|
1140
1183
|
# To create a multi-Region primary key with imported key material, use
|
1141
1184
|
# the `Origin` parameter of `CreateKey` with a value of `EXTERNAL` and
|
1142
1185
|
# the `MultiRegion` parameter with a value of `True`. To create
|
1143
1186
|
# replicas of the multi-Region primary key, use the ReplicateKey
|
1144
|
-
# operation. For more information about multi-Region keys, see
|
1145
|
-
#
|
1146
|
-
# Guide*.
|
1187
|
+
# operation. For more information about multi-Region keys, see
|
1188
|
+
# [Multi-Region keys in KMS][5] in the *Key Management Service
|
1189
|
+
# Developer Guide*.
|
1147
1190
|
#
|
1148
1191
|
#
|
1149
1192
|
#
|
1150
1193
|
# Custom key store
|
1151
1194
|
#
|
1152
|
-
# : To create a symmetric KMS key in a [custom key store][7],
|
1153
|
-
# `CustomKeyStoreId` parameter to specify the custom key
|
1154
|
-
# must also use the `Origin` parameter with a value of
|
1155
|
-
# The CloudHSM cluster that is associated with the
|
1156
|
-
# must have at least two active HSMs in different
|
1157
|
-
# in the Amazon Web Services Region.
|
1195
|
+
# : To create a symmetric encryption KMS key in a [custom key store][7],
|
1196
|
+
# use the `CustomKeyStoreId` parameter to specify the custom key
|
1197
|
+
# store. You must also use the `Origin` parameter with a value of
|
1198
|
+
# `AWS_CLOUDHSM`. The CloudHSM cluster that is associated with the
|
1199
|
+
# custom key store must have at least two active HSMs in different
|
1200
|
+
# Availability Zones in the Amazon Web Services Region.
|
1158
1201
|
#
|
1159
|
-
#
|
1160
|
-
#
|
1161
|
-
#
|
1162
|
-
#
|
1202
|
+
# Custom key stores support only symmetric encryption KMS keys. You
|
1203
|
+
# cannot create an HMAC KMS key or an asymmetric KMS key in a custom
|
1204
|
+
# key store. For information about custom key stores in KMS see
|
1205
|
+
# [Custom key stores in KMS][7] in the <i> <i>Key Management Service
|
1206
|
+
# Developer Guide</i> </i>.
|
1163
1207
|
#
|
1164
1208
|
# **Cross-account use**\: No. You cannot use this operation to create a
|
1165
1209
|
# KMS key in a different Amazon Web Services account.
|
@@ -1180,9 +1224,9 @@ module Aws::KMS
|
|
1180
1224
|
#
|
1181
1225
|
#
|
1182
1226
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys
|
1183
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1184
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1185
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
1227
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-symmetric-default
|
1228
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
1229
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
1186
1230
|
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
|
1187
1231
|
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
1188
1232
|
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
@@ -1190,16 +1234,19 @@ module Aws::KMS
|
|
1190
1234
|
# [9]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key
|
1191
1235
|
#
|
1192
1236
|
# @option params [String] :policy
|
1193
|
-
# The key policy to attach to the KMS key.
|
1237
|
+
# The key policy to attach to the KMS key. If you do not specify a key
|
1238
|
+
# policy, KMS attaches a default key policy to the KMS key. For more
|
1239
|
+
# information, see [Default key policy][1] in the *Key Management
|
1240
|
+
# Service Developer Guide*.
|
1194
1241
|
#
|
1195
1242
|
# If you provide a key policy, it must meet the following criteria:
|
1196
1243
|
#
|
1197
|
-
# * If you don't set `BypassPolicyLockoutSafetyCheck` to
|
1198
|
-
# policy must allow the principal that is making the `CreateKey`
|
1244
|
+
# * If you don't set `BypassPolicyLockoutSafetyCheck` to `True`, the
|
1245
|
+
# key policy must allow the principal that is making the `CreateKey`
|
1199
1246
|
# request to make a subsequent PutKeyPolicy request on the KMS key.
|
1200
1247
|
# This reduces the risk that the KMS key becomes unmanageable. For
|
1201
1248
|
# more information, refer to the scenario in the [Default Key
|
1202
|
-
# Policy][
|
1249
|
+
# Policy][2] section of the <i> <i>Key Management Service Developer
|
1203
1250
|
# Guide</i> </i>.
|
1204
1251
|
#
|
1205
1252
|
# * Each statement in the key policy must contain one or more
|
@@ -1209,25 +1256,33 @@ module Aws::KMS
|
|
1209
1256
|
# delay before including the new principal in a key policy because the
|
1210
1257
|
# new principal might not be immediately visible to KMS. For more
|
1211
1258
|
# information, see [Changes that I make are not always immediately
|
1212
|
-
# visible][
|
1259
|
+
# visible][3] in the *Amazon Web Services Identity and Access
|
1213
1260
|
# Management User Guide*.
|
1214
1261
|
#
|
1215
|
-
#
|
1216
|
-
#
|
1217
|
-
#
|
1262
|
+
# A key policy document can include only the following characters:
|
1263
|
+
#
|
1264
|
+
# * Printable ASCII characters from the space character (`\u0020`)
|
1265
|
+
# through the end of the ASCII character range.
|
1218
1266
|
#
|
1219
|
-
#
|
1267
|
+
# * Printable characters in the Basic Latin and Latin-1 Supplement
|
1268
|
+
# character set (through `\u00FF`).
|
1220
1269
|
#
|
1221
|
-
#
|
1222
|
-
#
|
1223
|
-
# User Guide</i> </i>.
|
1270
|
+
# * The tab (`\u0009`), line feed (`\u000A`), and carriage return
|
1271
|
+
# (`\u000D`) special characters
|
1224
1272
|
#
|
1273
|
+
# For information about key policies, see [Key policies in KMS][4] in
|
1274
|
+
# the *Key Management Service Developer Guide*. For help writing and
|
1275
|
+
# formatting a JSON policy document, see the [IAM JSON Policy
|
1276
|
+
# Reference][5] in the <i> <i>Identity and Access Management User
|
1277
|
+
# Guide</i> </i>.
|
1225
1278
|
#
|
1226
1279
|
#
|
1227
|
-
#
|
1228
|
-
# [
|
1229
|
-
# [
|
1230
|
-
# [
|
1280
|
+
#
|
1281
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
|
1282
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
|
1283
|
+
# [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
|
1284
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
|
1285
|
+
# [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
|
1231
1286
|
#
|
1232
1287
|
# @option params [String] :description
|
1233
1288
|
# A description of the KMS key.
|
@@ -1242,20 +1297,26 @@ module Aws::KMS
|
|
1242
1297
|
# @option params [String] :key_usage
|
1243
1298
|
# Determines the [cryptographic operations][1] for which you can use the
|
1244
1299
|
# KMS key. The default value is `ENCRYPT_DECRYPT`. This parameter is
|
1245
|
-
#
|
1246
|
-
#
|
1300
|
+
# optional when you are creating a symmetric encryption KMS key;
|
1301
|
+
# otherwise, it is required. You can't change the `KeyUsage` value
|
1302
|
+
# after the KMS key is created.
|
1247
1303
|
#
|
1248
1304
|
# Select only one valid value.
|
1249
1305
|
#
|
1250
|
-
# * For symmetric KMS keys, omit the parameter or specify
|
1306
|
+
# * For symmetric encryption KMS keys, omit the parameter or specify
|
1251
1307
|
# `ENCRYPT_DECRYPT`.
|
1252
1308
|
#
|
1309
|
+
# * For HMAC KMS keys (symmetric), specify `GENERATE_VERIFY_MAC`.
|
1310
|
+
#
|
1253
1311
|
# * For asymmetric KMS keys with RSA key material, specify
|
1254
1312
|
# `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
|
1255
1313
|
#
|
1256
1314
|
# * For asymmetric KMS keys with ECC key material, specify
|
1257
1315
|
# `SIGN_VERIFY`.
|
1258
1316
|
#
|
1317
|
+
# * For asymmetric KMS keys with SM2 key material (China Regions only),
|
1318
|
+
# specify `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
|
1319
|
+
#
|
1259
1320
|
#
|
1260
1321
|
#
|
1261
1322
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
|
@@ -1270,34 +1331,43 @@ module Aws::KMS
|
|
1270
1331
|
#
|
1271
1332
|
# @option params [String] :key_spec
|
1272
1333
|
# Specifies the type of KMS key to create. The default value,
|
1273
|
-
# `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit
|
1274
|
-
# for encryption and decryption
|
1275
|
-
#
|
1276
|
-
#
|
1334
|
+
# `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit AES-GCM key that
|
1335
|
+
# is used for encryption and decryption, except in China Regions, where
|
1336
|
+
# it creates a 128-bit symmetric key that uses SM4 encryption. For help
|
1337
|
+
# choosing a key spec for your KMS key, see [Choosing a KMS key type][1]
|
1338
|
+
# in the <i> <i>Key Management Service Developer Guide</i> </i>.
|
1277
1339
|
#
|
1278
1340
|
# The `KeySpec` determines whether the KMS key contains a symmetric key
|
1279
|
-
# or an asymmetric key pair. It also determines the
|
1280
|
-
# algorithms
|
1281
|
-
#
|
1282
|
-
#
|
1283
|
-
#
|
1284
|
-
# [kms:
|
1285
|
-
#
|
1286
|
-
#
|
1287
|
-
# [Amazon Web Services services that are integrated with KMS][
|
1288
|
-
# symmetric KMS keys to protect your data. These services do
|
1289
|
-
# asymmetric KMS keys
|
1290
|
-
# symmetric or asymmetric, see [Identifying Symmetric and Asymmetric KMS
|
1291
|
-
# keys][5] in the *Key Management Service Developer Guide*.
|
1341
|
+
# or an asymmetric key pair. It also determines the cryptographic
|
1342
|
+
# algorithms that the KMS key supports. You can't change the `KeySpec`
|
1343
|
+
# after the KMS key is created. To further restrict the algorithms that
|
1344
|
+
# can be used with the KMS key, use a condition key in its key policy or
|
1345
|
+
# IAM policy. For more information, see [kms:EncryptionAlgorithm][2],
|
1346
|
+
# [kms:MacAlgorithm][3] or [kms:Signing Algorithm][4] in the <i> <i>Key
|
1347
|
+
# Management Service Developer Guide</i> </i>.
|
1348
|
+
#
|
1349
|
+
# [Amazon Web Services services that are integrated with KMS][5] use
|
1350
|
+
# symmetric encryption KMS keys to protect your data. These services do
|
1351
|
+
# not support asymmetric KMS keys or HMAC KMS keys.
|
1292
1352
|
#
|
1293
1353
|
# KMS supports the following key specs for KMS keys:
|
1294
1354
|
#
|
1295
|
-
# * Symmetric key (default)
|
1355
|
+
# * Symmetric encryption key (default)
|
1296
1356
|
#
|
1297
|
-
# * `SYMMETRIC_DEFAULT`
|
1357
|
+
# * `SYMMETRIC_DEFAULT`
|
1298
1358
|
#
|
1299
1359
|
# ^
|
1300
1360
|
#
|
1361
|
+
# * HMAC keys (symmetric)
|
1362
|
+
#
|
1363
|
+
# * `HMAC_224`
|
1364
|
+
#
|
1365
|
+
# * `HMAC_256`
|
1366
|
+
#
|
1367
|
+
# * `HMAC_384`
|
1368
|
+
#
|
1369
|
+
# * `HMAC_512`
|
1370
|
+
#
|
1301
1371
|
# * Asymmetric RSA key pairs
|
1302
1372
|
#
|
1303
1373
|
# * `RSA_2048`
|
@@ -1320,13 +1390,19 @@ module Aws::KMS
|
|
1320
1390
|
#
|
1321
1391
|
# ^
|
1322
1392
|
#
|
1393
|
+
# * SM2 key pairs (China Regions only)
|
1394
|
+
#
|
1395
|
+
# * `SM2`
|
1396
|
+
#
|
1397
|
+
# ^
|
1398
|
+
#
|
1323
1399
|
#
|
1324
1400
|
#
|
1325
|
-
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose
|
1401
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html#symm-asymm-choose
|
1326
1402
|
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm
|
1327
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-
|
1328
|
-
# [4]:
|
1329
|
-
# [5]:
|
1403
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm
|
1404
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm
|
1405
|
+
# [5]: http://aws.amazon.com/kms/features/#AWS_Service_Integration
|
1330
1406
|
#
|
1331
1407
|
# @option params [String] :origin
|
1332
1408
|
# The source of the key material for the KMS key. You cannot change the
|
@@ -1337,13 +1413,13 @@ module Aws::KMS
|
|
1337
1413
|
# set the value to `EXTERNAL`. For more information about importing key
|
1338
1414
|
# material into KMS, see [Importing Key Material][1] in the *Key
|
1339
1415
|
# Management Service Developer Guide*. This value is valid only for
|
1340
|
-
# symmetric KMS keys.
|
1416
|
+
# symmetric encryption KMS keys.
|
1341
1417
|
#
|
1342
1418
|
# To create a KMS key in an KMS [custom key store][2] and create its key
|
1343
1419
|
# material in the associated CloudHSM cluster, set this value to
|
1344
1420
|
# `AWS_CLOUDHSM`. You must also use the `CustomKeyStoreId` parameter to
|
1345
1421
|
# identify the custom key store. This value is valid only for symmetric
|
1346
|
-
# KMS keys.
|
1422
|
+
# encryption KMS keys.
|
1347
1423
|
#
|
1348
1424
|
#
|
1349
1425
|
#
|
@@ -1358,9 +1434,9 @@ module Aws::KMS
|
|
1358
1434
|
# the custom key store must have at least two active HSMs, each in a
|
1359
1435
|
# different Availability Zone in the Region.
|
1360
1436
|
#
|
1361
|
-
# This parameter is valid only for symmetric KMS keys
|
1362
|
-
#
|
1363
|
-
#
|
1437
|
+
# This parameter is valid only for symmetric encryption KMS keys in a
|
1438
|
+
# single Region. You cannot create any other type of KMS key in a custom
|
1439
|
+
# key store.
|
1364
1440
|
#
|
1365
1441
|
# To find the ID of a custom key store, use the DescribeCustomKeyStores
|
1366
1442
|
# operation.
|
@@ -1368,7 +1444,7 @@ module Aws::KMS
|
|
1368
1444
|
# The response includes the custom key store ID and the ID of the
|
1369
1445
|
# CloudHSM cluster.
|
1370
1446
|
#
|
1371
|
-
# This operation is part of the [
|
1447
|
+
# This operation is part of the [custom key store feature][1] feature in
|
1372
1448
|
# KMS, which combines the convenience and extensive integration of KMS
|
1373
1449
|
# with the isolation and control of a single-tenant key store.
|
1374
1450
|
#
|
@@ -1403,8 +1479,8 @@ module Aws::KMS
|
|
1403
1479
|
# TagResource operation.
|
1404
1480
|
#
|
1405
1481
|
# <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
|
1406
|
-
# key. For details, see [
|
1407
|
-
#
|
1482
|
+
# key. For details, see [ABAC in KMS][1] in the *Key Management Service
|
1483
|
+
# Developer Guide*.
|
1408
1484
|
#
|
1409
1485
|
# </note>
|
1410
1486
|
#
|
@@ -1444,15 +1520,16 @@ module Aws::KMS
|
|
1444
1520
|
# encrypt data in one Amazon Web Services Region and decrypt it in a
|
1445
1521
|
# different Amazon Web Services Region without re-encrypting the data or
|
1446
1522
|
# making a cross-Region call. For more information about multi-Region
|
1447
|
-
# keys, see [
|
1523
|
+
# keys, see [Multi-Region keys in KMS][1] in the *Key Management Service
|
1448
1524
|
# Developer Guide*.
|
1449
1525
|
#
|
1450
1526
|
# This value creates a *primary key*, not a replica. To create a
|
1451
1527
|
# *replica key*, use the ReplicateKey operation.
|
1452
1528
|
#
|
1453
|
-
# You can create a
|
1454
|
-
#
|
1455
|
-
# cannot create a multi-Region key
|
1529
|
+
# You can create a multi-Region version of a symmetric encryption KMS
|
1530
|
+
# key, an HMAC KMS key, an asymmetric KMS key, or a KMS key with
|
1531
|
+
# imported key material. However, you cannot create a multi-Region key
|
1532
|
+
# in a custom key store.
|
1456
1533
|
#
|
1457
1534
|
#
|
1458
1535
|
#
|
@@ -1665,14 +1742,46 @@ module Aws::KMS
|
|
1665
1742
|
# }, # Detailed information about the KMS key that this operation creates.
|
1666
1743
|
# }
|
1667
1744
|
#
|
1745
|
+
# @example Example: To create an HMAC KMS key
|
1746
|
+
#
|
1747
|
+
# # This example creates a 384-bit symmetric HMAC KMS key. The GENERATE_VERIFY_MAC key usage value is required even though
|
1748
|
+
# # 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.
|
1749
|
+
#
|
1750
|
+
# resp = client.create_key({
|
1751
|
+
# key_spec: "HMAC_384", # Describes the type of key material in the KMS key.
|
1752
|
+
# key_usage: "GENERATE_VERIFY_MAC", # The cryptographic operations for which you can use the KMS key.
|
1753
|
+
# })
|
1754
|
+
#
|
1755
|
+
# resp.to_h outputs the following:
|
1756
|
+
# {
|
1757
|
+
# key_metadata: {
|
1758
|
+
# aws_account_id: "111122223333",
|
1759
|
+
# arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
|
1760
|
+
# creation_date: Time.parse("2022-04-05T14:04:55-07:00"),
|
1761
|
+
# customer_master_key_spec: "HMAC_384",
|
1762
|
+
# description: "",
|
1763
|
+
# enabled: true,
|
1764
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab",
|
1765
|
+
# key_manager: "CUSTOMER",
|
1766
|
+
# key_spec: "HMAC_384",
|
1767
|
+
# key_state: "Enabled",
|
1768
|
+
# key_usage: "GENERATE_VERIFY_MAC",
|
1769
|
+
# mac_algorithms: [
|
1770
|
+
# "HMAC_SHA_384",
|
1771
|
+
# ],
|
1772
|
+
# multi_region: false,
|
1773
|
+
# origin: "AWS_KMS",
|
1774
|
+
# }, # Detailed information about the KMS key that this operation creates.
|
1775
|
+
# }
|
1776
|
+
#
|
1668
1777
|
# @example Request syntax with placeholder values
|
1669
1778
|
#
|
1670
1779
|
# resp = client.create_key({
|
1671
1780
|
# policy: "PolicyType",
|
1672
1781
|
# description: "DescriptionType",
|
1673
|
-
# key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT
|
1674
|
-
# 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
|
1675
|
-
# 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
|
1782
|
+
# key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT, GENERATE_VERIFY_MAC
|
1783
|
+
# 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, SM2
|
1784
|
+
# 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, SM2
|
1676
1785
|
# origin: "AWS_KMS", # accepts AWS_KMS, EXTERNAL, AWS_CLOUDHSM
|
1677
1786
|
# custom_key_store_id: "CustomKeyStoreIdType",
|
1678
1787
|
# bypass_policy_lockout_safety_check: false,
|
@@ -1693,7 +1802,7 @@ module Aws::KMS
|
|
1693
1802
|
# resp.key_metadata.creation_date #=> Time
|
1694
1803
|
# resp.key_metadata.enabled #=> Boolean
|
1695
1804
|
# resp.key_metadata.description #=> String
|
1696
|
-
# resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT"
|
1805
|
+
# resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC"
|
1697
1806
|
# resp.key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating"
|
1698
1807
|
# resp.key_metadata.deletion_date #=> Time
|
1699
1808
|
# resp.key_metadata.valid_to #=> Time
|
@@ -1702,12 +1811,12 @@ module Aws::KMS
|
|
1702
1811
|
# resp.key_metadata.cloud_hsm_cluster_id #=> String
|
1703
1812
|
# resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
|
1704
1813
|
# resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
|
1705
|
-
# 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"
|
1706
|
-
# 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"
|
1814
|
+
# 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", "SM2"
|
1815
|
+
# 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", "SM2"
|
1707
1816
|
# resp.key_metadata.encryption_algorithms #=> Array
|
1708
|
-
# resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
1817
|
+
# resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
|
1709
1818
|
# resp.key_metadata.signing_algorithms #=> Array
|
1710
|
-
# resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512"
|
1819
|
+
# resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
|
1711
1820
|
# resp.key_metadata.multi_region #=> Boolean
|
1712
1821
|
# resp.key_metadata.multi_region_configuration.multi_region_key_type #=> String, one of "PRIMARY", "REPLICA"
|
1713
1822
|
# resp.key_metadata.multi_region_configuration.primary_key.arn #=> String
|
@@ -1716,6 +1825,8 @@ module Aws::KMS
|
|
1716
1825
|
# resp.key_metadata.multi_region_configuration.replica_keys[0].arn #=> String
|
1717
1826
|
# resp.key_metadata.multi_region_configuration.replica_keys[0].region #=> String
|
1718
1827
|
# resp.key_metadata.pending_deletion_window_in_days #=> Integer
|
1828
|
+
# resp.key_metadata.mac_algorithms #=> Array
|
1829
|
+
# resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
1719
1830
|
#
|
1720
1831
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKey AWS API Documentation
|
1721
1832
|
#
|
@@ -1740,29 +1851,30 @@ module Aws::KMS
|
|
1740
1851
|
# * GenerateDataKeyPairWithoutPlaintext
|
1741
1852
|
#
|
1742
1853
|
# You can use this operation to decrypt ciphertext that was encrypted
|
1743
|
-
# under a symmetric
|
1744
|
-
# asymmetric, you must specify the KMS key and
|
1745
|
-
# that was used to encrypt the ciphertext. For
|
1746
|
-
#
|
1747
|
-
#
|
1854
|
+
# under a symmetric encryption KMS key or an asymmetric encryption KMS
|
1855
|
+
# key. When the KMS key is asymmetric, you must specify the KMS key and
|
1856
|
+
# the encryption algorithm that was used to encrypt the ciphertext. For
|
1857
|
+
# information about asymmetric KMS keys, see [Asymmetric KMS keys][1] in
|
1858
|
+
# the *Key Management Service Developer Guide*.
|
1748
1859
|
#
|
1749
|
-
# The Decrypt operation also decrypts ciphertext that was encrypted
|
1860
|
+
# The `Decrypt` operation also decrypts ciphertext that was encrypted
|
1750
1861
|
# outside of KMS by the public key in an KMS asymmetric KMS key.
|
1751
1862
|
# However, it cannot decrypt ciphertext produced by other libraries,
|
1752
1863
|
# such as the [Amazon Web Services Encryption SDK][2] or [Amazon S3
|
1753
1864
|
# client-side encryption][3]. These libraries return a ciphertext format
|
1754
1865
|
# that is incompatible with KMS.
|
1755
1866
|
#
|
1756
|
-
# If the ciphertext was encrypted under a symmetric KMS key,
|
1757
|
-
# parameter is optional. KMS can get this information from
|
1758
|
-
# it adds to the symmetric ciphertext blob. This feature
|
1759
|
-
# to your implementation by ensuring that authorized
|
1760
|
-
# ciphertext decades after it was encrypted, even if
|
1761
|
-
# of the key ID. However, specifying the KMS key is
|
1762
|
-
# as a best practice. When you use the `KeyId`
|
1763
|
-
# KMS key, KMS only uses the KMS key you specify.
|
1764
|
-
# encrypted under a different KMS key, the
|
1765
|
-
# This practice ensures that you use the KMS
|
1867
|
+
# If the ciphertext was encrypted under a symmetric encryption KMS key,
|
1868
|
+
# the `KeyId` parameter is optional. KMS can get this information from
|
1869
|
+
# metadata that it adds to the symmetric ciphertext blob. This feature
|
1870
|
+
# adds durability to your implementation by ensuring that authorized
|
1871
|
+
# users can decrypt ciphertext decades after it was encrypted, even if
|
1872
|
+
# they've lost track of the key ID. However, specifying the KMS key is
|
1873
|
+
# always recommended as a best practice. When you use the `KeyId`
|
1874
|
+
# parameter to specify a KMS key, KMS only uses the KMS key you specify.
|
1875
|
+
# If the ciphertext was encrypted under a different KMS key, the
|
1876
|
+
# `Decrypt` operation fails. This practice ensures that you use the KMS
|
1877
|
+
# key that you intend.
|
1766
1878
|
#
|
1767
1879
|
# Whenever possible, use key policies to give users permission to call
|
1768
1880
|
# the `Decrypt` operation on a particular KMS key, instead of using IAM
|
@@ -1781,8 +1893,8 @@ module Aws::KMS
|
|
1781
1893
|
# Service Developer Guide*.
|
1782
1894
|
#
|
1783
1895
|
# The KMS key that you use for this operation must be in a compatible
|
1784
|
-
# key state. For details, see [Key
|
1785
|
-
#
|
1896
|
+
# key state. For details, see [Key states of KMS keys][7] in the *Key
|
1897
|
+
# Management Service Developer Guide*.
|
1786
1898
|
#
|
1787
1899
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
1788
1900
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -1817,17 +1929,19 @@ module Aws::KMS
|
|
1817
1929
|
# @option params [Hash<String,String>] :encryption_context
|
1818
1930
|
# Specifies the encryption context to use when decrypting the data. An
|
1819
1931
|
# encryption context is valid only for [cryptographic operations][1]
|
1820
|
-
# with a symmetric KMS key. The standard asymmetric
|
1821
|
-
# algorithms that KMS uses do not support
|
1932
|
+
# with a symmetric encryption KMS key. The standard asymmetric
|
1933
|
+
# encryption algorithms and HMAC algorithms that KMS uses do not support
|
1934
|
+
# an encryption context.
|
1822
1935
|
#
|
1823
1936
|
# An *encryption context* is a collection of non-secret key-value pairs
|
1824
|
-
# that
|
1937
|
+
# that represent additional authenticated data. When you use an
|
1825
1938
|
# encryption context to encrypt data, you must specify the same (an
|
1826
1939
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
1827
|
-
# encryption context is
|
1828
|
-
#
|
1940
|
+
# encryption context is supported only on operations with symmetric
|
1941
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
1942
|
+
# an encryption context is optional, but it is strongly recommended.
|
1829
1943
|
#
|
1830
|
-
# For more information, see [Encryption
|
1944
|
+
# For more information, see [Encryption context][2] in the *Key
|
1831
1945
|
# Management Service Developer Guide*.
|
1832
1946
|
#
|
1833
1947
|
#
|
@@ -1849,14 +1963,18 @@ module Aws::KMS
|
|
1849
1963
|
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
|
1850
1964
|
#
|
1851
1965
|
# @option params [String] :key_id
|
1852
|
-
# Specifies the KMS key that KMS uses to decrypt the ciphertext.
|
1853
|
-
#
|
1966
|
+
# Specifies the KMS key that KMS uses to decrypt the ciphertext.
|
1967
|
+
#
|
1968
|
+
# Enter a key ID of the KMS key that was used to encrypt the ciphertext.
|
1969
|
+
# If you identify a different KMS key, the `Decrypt` operation throws an
|
1970
|
+
# `IncorrectKeyException`.
|
1854
1971
|
#
|
1855
1972
|
# This parameter is required only when the ciphertext was encrypted
|
1856
|
-
# under an asymmetric KMS key. If you used a symmetric
|
1857
|
-
# get the KMS key from metadata that it adds to the
|
1858
|
-
# blob. However, it is always recommended as a best
|
1859
|
-
# practice ensures that you use the KMS key that you
|
1973
|
+
# under an asymmetric KMS key. If you used a symmetric encryption KMS
|
1974
|
+
# key, KMS can get the KMS key from metadata that it adds to the
|
1975
|
+
# symmetric ciphertext blob. However, it is always recommended as a best
|
1976
|
+
# practice. This practice ensures that you use the KMS key that you
|
1977
|
+
# intend.
|
1860
1978
|
#
|
1861
1979
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
1862
1980
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -1886,7 +2004,7 @@ module Aws::KMS
|
|
1886
2004
|
# This parameter is required only when the ciphertext was encrypted
|
1887
2005
|
# under an asymmetric KMS key. The default value, `SYMMETRIC_DEFAULT`,
|
1888
2006
|
# represents the only supported algorithm that is valid for symmetric
|
1889
|
-
# KMS keys.
|
2007
|
+
# encryption KMS keys.
|
1890
2008
|
#
|
1891
2009
|
# @return [Types::DecryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1892
2010
|
#
|
@@ -1919,14 +2037,14 @@ module Aws::KMS
|
|
1919
2037
|
# },
|
1920
2038
|
# grant_tokens: ["GrantTokenType"],
|
1921
2039
|
# key_id: "KeyIdType",
|
1922
|
-
# encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256
|
2040
|
+
# encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, SM2PKE
|
1923
2041
|
# })
|
1924
2042
|
#
|
1925
2043
|
# @example Response structure
|
1926
2044
|
#
|
1927
2045
|
# resp.key_id #=> String
|
1928
2046
|
# resp.plaintext #=> String
|
1929
|
-
# resp.encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
2047
|
+
# resp.encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
|
1930
2048
|
#
|
1931
2049
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Decrypt AWS API Documentation
|
1932
2050
|
#
|
@@ -1940,8 +2058,8 @@ module Aws::KMS
|
|
1940
2058
|
# Deletes the specified alias.
|
1941
2059
|
#
|
1942
2060
|
# <note markdown="1"> Adding, deleting, or updating an alias can allow or deny permission to
|
1943
|
-
# the KMS key. For details, see [
|
1944
|
-
#
|
2061
|
+
# the KMS key. For details, see [ABAC in KMS][1] in the *Key Management
|
2062
|
+
# Service Developer Guide*.
|
1945
2063
|
#
|
1946
2064
|
# </note>
|
1947
2065
|
#
|
@@ -2015,15 +2133,15 @@ module Aws::KMS
|
|
2015
2133
|
# CloudHSM cluster that is associated with the custom key store, or
|
2016
2134
|
# affect any users or keys in the cluster.
|
2017
2135
|
#
|
2018
|
-
# The custom key store that you delete cannot contain any KMS [
|
2019
|
-
#
|
2020
|
-
#
|
2021
|
-
#
|
2022
|
-
#
|
2023
|
-
#
|
2024
|
-
#
|
2025
|
-
#
|
2026
|
-
#
|
2136
|
+
# The custom key store that you delete cannot contain any [KMS keys][2].
|
2137
|
+
# Before deleting the key store, verify that you will never need to use
|
2138
|
+
# any of the KMS keys in the key store for any [cryptographic
|
2139
|
+
# operations][3]. Then, use ScheduleKeyDeletion to delete the KMS keys
|
2140
|
+
# from the key store. When the scheduled waiting period expires, the
|
2141
|
+
# `ScheduleKeyDeletion` operation deletes the KMS keys. Then it makes a
|
2142
|
+
# best effort to delete the key material from the associated cluster.
|
2143
|
+
# However, you might need to manually [delete the orphaned key
|
2144
|
+
# material][4] from the cluster and its backups.
|
2027
2145
|
#
|
2028
2146
|
# After all KMS keys are deleted from KMS, use DisconnectCustomKeyStore
|
2029
2147
|
# to disconnect the key store from KMS. Then, you can delete the custom
|
@@ -2038,7 +2156,7 @@ module Aws::KMS
|
|
2038
2156
|
# If the operation succeeds, it returns a JSON object with no
|
2039
2157
|
# properties.
|
2040
2158
|
#
|
2041
|
-
# This operation is part of the [
|
2159
|
+
# This operation is part of the [custom key store feature][1] feature in
|
2042
2160
|
# KMS, which combines the convenience and extensive integration of KMS
|
2043
2161
|
# with the isolation and control of a single-tenant key store.
|
2044
2162
|
#
|
@@ -2116,8 +2234,8 @@ module Aws::KMS
|
|
2116
2234
|
# reimport the same key material into the KMS key.
|
2117
2235
|
#
|
2118
2236
|
# The KMS key that you use for this operation must be in a compatible
|
2119
|
-
# key state. For details, see [Key
|
2120
|
-
#
|
2237
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
2238
|
+
# Management Service Developer Guide*.
|
2121
2239
|
#
|
2122
2240
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2123
2241
|
# key in a different Amazon Web Services account.
|
@@ -2182,7 +2300,7 @@ module Aws::KMS
|
|
2182
2300
|
# Gets information about [custom key stores][1] in the account and
|
2183
2301
|
# Region.
|
2184
2302
|
#
|
2185
|
-
# This operation is part of the [
|
2303
|
+
# This operation is part of the [custom key store feature][1] feature in
|
2186
2304
|
# KMS, which combines the convenience and extensive integration of KMS
|
2187
2305
|
# with the isolation and control of a single-tenant key store.
|
2188
2306
|
#
|
@@ -2267,6 +2385,8 @@ module Aws::KMS
|
|
2267
2385
|
# * {Types::DescribeCustomKeyStoresResponse#next_marker #next_marker} => String
|
2268
2386
|
# * {Types::DescribeCustomKeyStoresResponse#truncated #truncated} => Boolean
|
2269
2387
|
#
|
2388
|
+
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
|
2389
|
+
#
|
2270
2390
|
#
|
2271
2391
|
# @example Example: To get detailed information about custom key stores in the account and Region
|
2272
2392
|
#
|
@@ -2322,7 +2442,7 @@ module Aws::KMS
|
|
2322
2442
|
# resp.custom_key_stores[0].cloud_hsm_cluster_id #=> String
|
2323
2443
|
# resp.custom_key_stores[0].trust_anchor_certificate #=> String
|
2324
2444
|
# resp.custom_key_stores[0].connection_state #=> String, one of "CONNECTED", "CONNECTING", "FAILED", "DISCONNECTED", "DISCONNECTING"
|
2325
|
-
# resp.custom_key_stores[0].connection_error_code #=> String, one of "INVALID_CREDENTIALS", "CLUSTER_NOT_FOUND", "NETWORK_ERRORS", "INTERNAL_ERROR", "INSUFFICIENT_CLOUDHSM_HSMS", "USER_LOCKED_OUT", "USER_NOT_FOUND", "USER_LOGGED_IN", "SUBNET_NOT_FOUND"
|
2445
|
+
# resp.custom_key_stores[0].connection_error_code #=> String, one of "INVALID_CREDENTIALS", "CLUSTER_NOT_FOUND", "NETWORK_ERRORS", "INTERNAL_ERROR", "INSUFFICIENT_CLOUDHSM_HSMS", "USER_LOCKED_OUT", "USER_NOT_FOUND", "USER_LOGGED_IN", "SUBNET_NOT_FOUND", "INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET"
|
2326
2446
|
# resp.custom_key_stores[0].creation_date #=> Time
|
2327
2447
|
# resp.next_marker #=> String
|
2328
2448
|
# resp.truncated #=> Boolean
|
@@ -2343,14 +2463,13 @@ module Aws::KMS
|
|
2343
2463
|
# This detailed information includes the key ARN, creation date (and
|
2344
2464
|
# deletion date, if applicable), the key state, and the origin and
|
2345
2465
|
# expiration date (if any) of the key material. It includes fields, like
|
2346
|
-
# `KeySpec`, that help you distinguish
|
2347
|
-
#
|
2348
|
-
#
|
2349
|
-
#
|
2350
|
-
#
|
2351
|
-
#
|
2352
|
-
#
|
2353
|
-
# replica keys.
|
2466
|
+
# `KeySpec`, that help you distinguish different types of KMS keys. It
|
2467
|
+
# also displays the key usage (encryption, signing, or generating and
|
2468
|
+
# verifying MACs) and the algorithms that the KMS key supports. For KMS
|
2469
|
+
# keys in custom key stores, it includes information about the custom
|
2470
|
+
# key store, such as the key store ID and the CloudHSM cluster ID. For
|
2471
|
+
# multi-Region keys, it displays the primary key and all related replica
|
2472
|
+
# keys.
|
2354
2473
|
#
|
2355
2474
|
# `DescribeKey` does not return the following information:
|
2356
2475
|
#
|
@@ -2360,7 +2479,7 @@ module Aws::KMS
|
|
2360
2479
|
# * Whether automatic key rotation is enabled on the KMS key. To get
|
2361
2480
|
# this information, use GetKeyRotationStatus. Also, some key states
|
2362
2481
|
# prevent a KMS key from being automatically rotated. For details, see
|
2363
|
-
# [How Automatic Key Rotation Works][3] in *Key Management Service
|
2482
|
+
# [How Automatic Key Rotation Works][3] in the *Key Management Service
|
2364
2483
|
# Developer Guide*.
|
2365
2484
|
#
|
2366
2485
|
# * Tags on the KMS key. To get this information, use ListResourceTags.
|
@@ -2368,11 +2487,10 @@ module Aws::KMS
|
|
2368
2487
|
# * Key policies and grants on the KMS key. To get this information, use
|
2369
2488
|
# GetKeyPolicy and ListGrants.
|
2370
2489
|
#
|
2371
|
-
#
|
2372
|
-
#
|
2373
|
-
#
|
2374
|
-
#
|
2375
|
-
# `Arn` of the new KMS key in the response.
|
2490
|
+
# In general, `DescribeKey` is a non-mutating operation. It returns data
|
2491
|
+
# about KMS keys, but doesn't change them. However, Amazon Web Services
|
2492
|
+
# services use `DescribeKey` to create [Amazon Web Services managed
|
2493
|
+
# keys][2] from a *predefined Amazon Web Services alias* with no key ID.
|
2376
2494
|
#
|
2377
2495
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
2378
2496
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -2454,10 +2572,10 @@ module Aws::KMS
|
|
2454
2572
|
#
|
2455
2573
|
# @example Example: To get details about a KMS key
|
2456
2574
|
#
|
2457
|
-
# # The following example gets metadata
|
2575
|
+
# # The following example gets metadata for a symmetric encryption KMS key.
|
2458
2576
|
#
|
2459
2577
|
# resp = client.describe_key({
|
2460
|
-
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", #
|
2578
|
+
# 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.
|
2461
2579
|
# })
|
2462
2580
|
#
|
2463
2581
|
# resp.to_h outputs the following:
|
@@ -2482,6 +2600,121 @@ module Aws::KMS
|
|
2482
2600
|
# }, # An object that contains information about the specified KMS key.
|
2483
2601
|
# }
|
2484
2602
|
#
|
2603
|
+
# @example Example: To get details about an RSA asymmetric KMS key
|
2604
|
+
#
|
2605
|
+
# # The following example gets metadata for an asymmetric RSA KMS key used for signing and verification.
|
2606
|
+
#
|
2607
|
+
# resp = client.describe_key({
|
2608
|
+
# 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.
|
2609
|
+
# })
|
2610
|
+
#
|
2611
|
+
# resp.to_h outputs the following:
|
2612
|
+
# {
|
2613
|
+
# key_metadata: {
|
2614
|
+
# aws_account_id: "111122223333",
|
2615
|
+
# arn: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
|
2616
|
+
# creation_date: Time.parse(1571767572.317),
|
2617
|
+
# customer_master_key_spec: "RSA_2048",
|
2618
|
+
# description: "",
|
2619
|
+
# enabled: false,
|
2620
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab",
|
2621
|
+
# key_manager: "CUSTOMER",
|
2622
|
+
# key_spec: "RSA_2048",
|
2623
|
+
# key_state: "Disabled",
|
2624
|
+
# key_usage: "SIGN_VERIFY",
|
2625
|
+
# multi_region: false,
|
2626
|
+
# origin: "AWS_KMS",
|
2627
|
+
# signing_algorithms: [
|
2628
|
+
# "RSASSA_PKCS1_V1_5_SHA_256",
|
2629
|
+
# "RSASSA_PKCS1_V1_5_SHA_384",
|
2630
|
+
# "RSASSA_PKCS1_V1_5_SHA_512",
|
2631
|
+
# "RSASSA_PSS_SHA_256",
|
2632
|
+
# "RSASSA_PSS_SHA_384",
|
2633
|
+
# "RSASSA_PSS_SHA_512",
|
2634
|
+
# ],
|
2635
|
+
# }, # An object that contains information about the specified KMS key.
|
2636
|
+
# }
|
2637
|
+
#
|
2638
|
+
# @example Example: To get details about a multi-Region key
|
2639
|
+
#
|
2640
|
+
# # The following example gets metadata for a multi-Region replica key. This multi-Region key is a symmetric encryption key.
|
2641
|
+
# # DescribeKey returns information about the primary key and all of its replicas.
|
2642
|
+
#
|
2643
|
+
# resp = client.describe_key({
|
2644
|
+
# 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.
|
2645
|
+
# })
|
2646
|
+
#
|
2647
|
+
# resp.to_h outputs the following:
|
2648
|
+
# {
|
2649
|
+
# key_metadata: {
|
2650
|
+
# aws_account_id: "111122223333",
|
2651
|
+
# arn: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2652
|
+
# creation_date: Time.parse(1586329200.918),
|
2653
|
+
# customer_master_key_spec: "SYMMETRIC_DEFAULT",
|
2654
|
+
# description: "",
|
2655
|
+
# enabled: true,
|
2656
|
+
# encryption_algorithms: [
|
2657
|
+
# "SYMMETRIC_DEFAULT",
|
2658
|
+
# ],
|
2659
|
+
# key_id: "mrk-1234abcd12ab34cd56ef1234567890ab",
|
2660
|
+
# key_manager: "CUSTOMER",
|
2661
|
+
# key_state: "Enabled",
|
2662
|
+
# key_usage: "ENCRYPT_DECRYPT",
|
2663
|
+
# multi_region: true,
|
2664
|
+
# multi_region_configuration: {
|
2665
|
+
# multi_region_key_type: "PRIMARY",
|
2666
|
+
# primary_key: {
|
2667
|
+
# arn: "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2668
|
+
# region: "us-west-2",
|
2669
|
+
# },
|
2670
|
+
# replica_keys: [
|
2671
|
+
# {
|
2672
|
+
# arn: "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2673
|
+
# region: "eu-west-1",
|
2674
|
+
# },
|
2675
|
+
# {
|
2676
|
+
# arn: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2677
|
+
# region: "ap-northeast-1",
|
2678
|
+
# },
|
2679
|
+
# {
|
2680
|
+
# arn: "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
|
2681
|
+
# region: "sa-east-1",
|
2682
|
+
# },
|
2683
|
+
# ],
|
2684
|
+
# },
|
2685
|
+
# origin: "AWS_KMS",
|
2686
|
+
# }, # An object that contains information about the specified KMS key.
|
2687
|
+
# }
|
2688
|
+
#
|
2689
|
+
# @example Example: To get details about an HMAC KMS key
|
2690
|
+
#
|
2691
|
+
# # The following example gets the metadata of an HMAC KMS key.
|
2692
|
+
#
|
2693
|
+
# resp = client.describe_key({
|
2694
|
+
# 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.
|
2695
|
+
# })
|
2696
|
+
#
|
2697
|
+
# resp.to_h outputs the following:
|
2698
|
+
# {
|
2699
|
+
# key_metadata: {
|
2700
|
+
# aws_account_id: "123456789012",
|
2701
|
+
# arn: "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab",
|
2702
|
+
# creation_date: Time.parse(1566160362.664),
|
2703
|
+
# customer_master_key_spec: "HMAC_256",
|
2704
|
+
# description: "Development test key",
|
2705
|
+
# enabled: true,
|
2706
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab",
|
2707
|
+
# key_manager: "CUSTOMER",
|
2708
|
+
# key_state: "Enabled",
|
2709
|
+
# key_usage: "GENERATE_VERIFY_MAC",
|
2710
|
+
# mac_algorithms: [
|
2711
|
+
# "HMAC_SHA_256",
|
2712
|
+
# ],
|
2713
|
+
# multi_region: false,
|
2714
|
+
# origin: "AWS_KMS",
|
2715
|
+
# }, # An object that contains information about the specified KMS key.
|
2716
|
+
# }
|
2717
|
+
#
|
2485
2718
|
# @example Request syntax with placeholder values
|
2486
2719
|
#
|
2487
2720
|
# resp = client.describe_key({
|
@@ -2497,7 +2730,7 @@ module Aws::KMS
|
|
2497
2730
|
# resp.key_metadata.creation_date #=> Time
|
2498
2731
|
# resp.key_metadata.enabled #=> Boolean
|
2499
2732
|
# resp.key_metadata.description #=> String
|
2500
|
-
# resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT"
|
2733
|
+
# resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC"
|
2501
2734
|
# resp.key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating"
|
2502
2735
|
# resp.key_metadata.deletion_date #=> Time
|
2503
2736
|
# resp.key_metadata.valid_to #=> Time
|
@@ -2506,12 +2739,12 @@ module Aws::KMS
|
|
2506
2739
|
# resp.key_metadata.cloud_hsm_cluster_id #=> String
|
2507
2740
|
# resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
|
2508
2741
|
# resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
|
2509
|
-
# 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"
|
2510
|
-
# 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"
|
2742
|
+
# 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", "SM2"
|
2743
|
+
# 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", "SM2"
|
2511
2744
|
# resp.key_metadata.encryption_algorithms #=> Array
|
2512
|
-
# resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
2745
|
+
# resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
|
2513
2746
|
# resp.key_metadata.signing_algorithms #=> Array
|
2514
|
-
# resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512"
|
2747
|
+
# resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
|
2515
2748
|
# resp.key_metadata.multi_region #=> Boolean
|
2516
2749
|
# resp.key_metadata.multi_region_configuration.multi_region_key_type #=> String, one of "PRIMARY", "REPLICA"
|
2517
2750
|
# resp.key_metadata.multi_region_configuration.primary_key.arn #=> String
|
@@ -2520,6 +2753,8 @@ module Aws::KMS
|
|
2520
2753
|
# resp.key_metadata.multi_region_configuration.replica_keys[0].arn #=> String
|
2521
2754
|
# resp.key_metadata.multi_region_configuration.replica_keys[0].region #=> String
|
2522
2755
|
# resp.key_metadata.pending_deletion_window_in_days #=> Integer
|
2756
|
+
# resp.key_metadata.mac_algorithms #=> Array
|
2757
|
+
# resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
2523
2758
|
#
|
2524
2759
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKey AWS API Documentation
|
2525
2760
|
#
|
@@ -2534,12 +2769,12 @@ module Aws::KMS
|
|
2534
2769
|
# prevents use of the KMS key for [cryptographic operations][1].
|
2535
2770
|
#
|
2536
2771
|
# For more information about how key state affects the use of a KMS key,
|
2537
|
-
# see [Key
|
2538
|
-
#
|
2772
|
+
# see [Key states of KMS keys][2] in the <i> <i>Key Management Service
|
2773
|
+
# Developer Guide</i> </i>.
|
2539
2774
|
#
|
2540
2775
|
# The KMS key that you use for this operation must be in a compatible
|
2541
|
-
# key state. For details, see [Key
|
2542
|
-
#
|
2776
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
2777
|
+
# Management Service Developer Guide*.
|
2543
2778
|
#
|
2544
2779
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2545
2780
|
# key in a different Amazon Web Services account.
|
@@ -2595,22 +2830,37 @@ module Aws::KMS
|
|
2595
2830
|
req.send_request(options)
|
2596
2831
|
end
|
2597
2832
|
|
2598
|
-
# Disables [automatic rotation of the key material][1]
|
2599
|
-
# symmetric KMS key.
|
2833
|
+
# Disables [automatic rotation of the key material][1] of the specified
|
2834
|
+
# symmetric encryption KMS key.
|
2835
|
+
#
|
2836
|
+
# Automatic key rotation is supported only on symmetric encryption KMS
|
2837
|
+
# keys. You cannot enable or disable automatic rotation of [asymmetric
|
2838
|
+
# KMS keys][2], [HMAC KMS keys][3], KMS keys with [imported key
|
2839
|
+
# material][4], or KMS keys in a [custom key store][5]. The key rotation
|
2840
|
+
# status of these KMS keys is always `false`. To enable or disable
|
2841
|
+
# automatic rotation of a set of related [multi-Region keys][6], set the
|
2842
|
+
# property on the primary key.
|
2843
|
+
#
|
2844
|
+
# You can enable (EnableKeyRotation) and disable automatic rotation of
|
2845
|
+
# the key material in [customer managed KMS keys][7]. Key material
|
2846
|
+
# rotation of [Amazon Web Services managed KMS keys][8] is not
|
2847
|
+
# configurable. KMS always rotates the key material for every year.
|
2848
|
+
# Rotation of [Amazon Web Services owned KMS keys][9] varies.
|
2849
|
+
#
|
2850
|
+
# <note markdown="1"> In May 2022, KMS changed the rotation schedule for Amazon Web Services
|
2851
|
+
# managed keys from every three years to every year. For details, see
|
2852
|
+
# EnableKeyRotation.
|
2600
2853
|
#
|
2601
|
-
#
|
2602
|
-
# keys with [imported key material][3], or KMS keys in a [custom key
|
2603
|
-
# store][4]. To enable or disable automatic rotation of a set of related
|
2604
|
-
# [multi-Region keys][5], set the property on the primary key.
|
2854
|
+
# </note>
|
2605
2855
|
#
|
2606
2856
|
# The KMS key that you use for this operation must be in a compatible
|
2607
|
-
# key state. For details, see [Key
|
2608
|
-
#
|
2857
|
+
# key state. For details, see [Key states of KMS keys][10] in the *Key
|
2858
|
+
# Management Service Developer Guide*.
|
2609
2859
|
#
|
2610
2860
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2611
2861
|
# key in a different Amazon Web Services account.
|
2612
2862
|
#
|
2613
|
-
# **Required permissions**\: [kms:DisableKeyRotation][
|
2863
|
+
# **Required permissions**\: [kms:DisableKeyRotation][11] (key policy)
|
2614
2864
|
#
|
2615
2865
|
# **Related operations:**
|
2616
2866
|
#
|
@@ -2621,17 +2871,22 @@ module Aws::KMS
|
|
2621
2871
|
#
|
2622
2872
|
#
|
2623
2873
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
|
2624
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2625
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2626
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2627
|
-
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2628
|
-
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2629
|
-
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2874
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
2875
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
2876
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
2877
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
2878
|
+
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
|
2879
|
+
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
2880
|
+
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
2881
|
+
# [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
|
2882
|
+
# [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
2883
|
+
# [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
2630
2884
|
#
|
2631
2885
|
# @option params [required, String] :key_id
|
2632
|
-
# Identifies a symmetric KMS key. You cannot enable or
|
2633
|
-
# rotation of [asymmetric KMS keys][1],
|
2634
|
-
#
|
2886
|
+
# Identifies a symmetric encryption KMS key. You cannot enable or
|
2887
|
+
# disable automatic rotation of [asymmetric KMS keys][1], [HMAC KMS
|
2888
|
+
# keys][2], KMS keys with [imported key material][3], or KMS keys in a
|
2889
|
+
# [custom key store][4].
|
2635
2890
|
#
|
2636
2891
|
# Specify the key ID or key ARN of the KMS key.
|
2637
2892
|
#
|
@@ -2648,8 +2903,9 @@ module Aws::KMS
|
|
2648
2903
|
#
|
2649
2904
|
#
|
2650
2905
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks
|
2651
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2652
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2906
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
2907
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
2908
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
2653
2909
|
#
|
2654
2910
|
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
|
2655
2911
|
#
|
@@ -2699,7 +2955,7 @@ module Aws::KMS
|
|
2699
2955
|
# If the operation succeeds, it returns a JSON object with no
|
2700
2956
|
# properties.
|
2701
2957
|
#
|
2702
|
-
# This operation is part of the [
|
2958
|
+
# This operation is part of the [custom key store feature][1] feature in
|
2703
2959
|
# KMS, which combines the convenience and extensive integration of KMS
|
2704
2960
|
# with the isolation and control of a single-tenant key store.
|
2705
2961
|
#
|
@@ -2767,8 +3023,8 @@ module Aws::KMS
|
|
2767
3023
|
# KMS key for [cryptographic operations][1].
|
2768
3024
|
#
|
2769
3025
|
# The KMS key that you use for this operation must be in a compatible
|
2770
|
-
# key state. For details, see [Key
|
2771
|
-
#
|
3026
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
3027
|
+
# Management Service Developer Guide*.
|
2772
3028
|
#
|
2773
3029
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2774
3030
|
# key in a different Amazon Web Services account.
|
@@ -2824,22 +3080,49 @@ module Aws::KMS
|
|
2824
3080
|
req.send_request(options)
|
2825
3081
|
end
|
2826
3082
|
|
2827
|
-
# Enables [automatic rotation of the key material][1]
|
2828
|
-
# symmetric KMS key.
|
3083
|
+
# Enables [automatic rotation of the key material][1] of the specified
|
3084
|
+
# symmetric encryption KMS key.
|
3085
|
+
#
|
3086
|
+
# When you enable automatic rotation of a[customer managed KMS key][2],
|
3087
|
+
# KMS rotates the key material of the KMS key one year (approximately
|
3088
|
+
# 365 days) from the enable date and every year thereafter. You can
|
3089
|
+
# monitor rotation of the key material for your KMS keys in CloudTrail
|
3090
|
+
# and Amazon CloudWatch. To disable rotation of the key material in a
|
3091
|
+
# customer managed KMS key, use the DisableKeyRotation operation.
|
3092
|
+
#
|
3093
|
+
# Automatic key rotation is supported only on [symmetric encryption KMS
|
3094
|
+
# keys][3]. You cannot enable or disable automatic rotation of
|
3095
|
+
# [asymmetric KMS keys][4], [HMAC KMS keys][5], KMS keys with [imported
|
3096
|
+
# key material][6], or KMS keys in a [custom key store][7]. The key
|
3097
|
+
# rotation status of these KMS keys is always `false`. To enable or
|
3098
|
+
# disable automatic rotation of a set of related [multi-Region keys][8],
|
3099
|
+
# set the property on the primary key.
|
3100
|
+
#
|
3101
|
+
# You cannot enable or disable automatic rotation [Amazon Web Services
|
3102
|
+
# managed KMS keys][9]. KMS always rotates the key material of Amazon
|
3103
|
+
# Web Services managed keys every year. Rotation of [Amazon Web Services
|
3104
|
+
# owned KMS keys][10] varies.
|
3105
|
+
#
|
3106
|
+
# <note markdown="1"> In May 2022, KMS changed the rotation schedule for Amazon Web Services
|
3107
|
+
# managed keys from every three years (approximately 1,095 days) to
|
3108
|
+
# every year (approximately 365 days).
|
3109
|
+
#
|
3110
|
+
# New Amazon Web Services managed keys are automatically rotated one
|
3111
|
+
# year after they are created, and approximately every year thereafter.
|
3112
|
+
#
|
3113
|
+
# Existing Amazon Web Services managed keys are automatically rotated
|
3114
|
+
# one year after their most recent rotation, and every year thereafter.
|
2829
3115
|
#
|
2830
|
-
#
|
2831
|
-
# keys with [imported key material][3], or KMS keys in a [custom key
|
2832
|
-
# store][4]. To enable or disable automatic rotation of a set of related
|
2833
|
-
# [multi-Region keys][5], set the property on the primary key.
|
3116
|
+
# </note>
|
2834
3117
|
#
|
2835
3118
|
# The KMS key that you use for this operation must be in a compatible
|
2836
|
-
# key state. For details, see [Key
|
2837
|
-
#
|
3119
|
+
# key state. For details, see [Key states of KMS keys][11] in the *Key
|
3120
|
+
# Management Service Developer Guide*.
|
2838
3121
|
#
|
2839
3122
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
2840
3123
|
# key in a different Amazon Web Services account.
|
2841
3124
|
#
|
2842
|
-
# **Required permissions**\: [kms:EnableKeyRotation][
|
3125
|
+
# **Required permissions**\: [kms:EnableKeyRotation][12] (key policy)
|
2843
3126
|
#
|
2844
3127
|
# **Related operations:**
|
2845
3128
|
#
|
@@ -2850,19 +3133,25 @@ module Aws::KMS
|
|
2850
3133
|
#
|
2851
3134
|
#
|
2852
3135
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
|
2853
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2854
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2855
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2856
|
-
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2857
|
-
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2858
|
-
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
3136
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
3137
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks
|
3138
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
3139
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
3140
|
+
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
3141
|
+
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
3142
|
+
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
|
3143
|
+
# [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
3144
|
+
# [10]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
|
3145
|
+
# [11]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
3146
|
+
# [12]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
2859
3147
|
#
|
2860
3148
|
# @option params [required, String] :key_id
|
2861
|
-
# Identifies a symmetric KMS key. You cannot enable
|
2862
|
-
# of [asymmetric KMS keys][1],
|
2863
|
-
#
|
2864
|
-
#
|
2865
|
-
#
|
3149
|
+
# Identifies a symmetric encryption KMS key. You cannot enable or
|
3150
|
+
# disable automatic rotation of [asymmetric KMS keys][1], [HMAC KMS
|
3151
|
+
# keys][2], KMS keys with [imported key material][3], or KMS keys in a
|
3152
|
+
# [custom key store][4]. The key rotation status of these KMS keys is
|
3153
|
+
# always `false`. To enable or disable automatic rotation of a set of
|
3154
|
+
# related [multi-Region keys][5], set the property on the primary key.
|
2866
3155
|
#
|
2867
3156
|
# Specify the key ID or key ARN of the KMS key.
|
2868
3157
|
#
|
@@ -2878,10 +3167,11 @@ module Aws::KMS
|
|
2878
3167
|
#
|
2879
3168
|
#
|
2880
3169
|
#
|
2881
|
-
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2882
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2883
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
2884
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
3170
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
3171
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
3172
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
3173
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
3174
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
|
2885
3175
|
#
|
2886
3176
|
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
|
2887
3177
|
#
|
@@ -2909,41 +3199,27 @@ module Aws::KMS
|
|
2909
3199
|
req.send_request(options)
|
2910
3200
|
end
|
2911
3201
|
|
2912
|
-
# Encrypts plaintext
|
2913
|
-
#
|
2914
|
-
#
|
2915
|
-
#
|
2916
|
-
#
|
2917
|
-
#
|
2918
|
-
#
|
2919
|
-
#
|
2920
|
-
#
|
2921
|
-
#
|
2922
|
-
#
|
2923
|
-
#
|
2924
|
-
#
|
2925
|
-
#
|
2926
|
-
#
|
2927
|
-
#
|
2928
|
-
# The GenerateDataKey and GenerateDataKeyPair operations return a
|
2929
|
-
# plaintext data key and an encrypted copy of that data key.
|
2930
|
-
#
|
2931
|
-
# When you encrypt data, you must specify a symmetric or asymmetric KMS
|
2932
|
-
# key to use in the encryption operation. The KMS key must have a
|
2933
|
-
# `KeyUsage` value of `ENCRYPT_DECRYPT.` To find the `KeyUsage` of a KMS
|
2934
|
-
# key, use the DescribeKey operation.
|
2935
|
-
#
|
2936
|
-
# If you use a symmetric KMS key, you can use an encryption context to
|
2937
|
-
# add additional security to your encryption operation. If you specify
|
2938
|
-
# an `EncryptionContext` when encrypting data, you must specify the same
|
2939
|
-
# encryption context (a case-sensitive exact match) when decrypting the
|
2940
|
-
# data. Otherwise, the request to decrypt fails with an
|
2941
|
-
# `InvalidCiphertextException`. For more information, see [Encryption
|
3202
|
+
# Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a
|
3203
|
+
# symmetric or asymmetric KMS key with a `KeyUsage` of
|
3204
|
+
# `ENCRYPT_DECRYPT`.
|
3205
|
+
#
|
3206
|
+
# You can use this operation to encrypt small amounts of arbitrary data,
|
3207
|
+
# such as a personal identifier or database password, or other sensitive
|
3208
|
+
# information. You don't need to use the `Encrypt` operation to encrypt
|
3209
|
+
# a data key. The GenerateDataKey and GenerateDataKeyPair operations
|
3210
|
+
# return a plaintext data key and an encrypted copy of that data key.
|
3211
|
+
#
|
3212
|
+
# If you use a symmetric encryption KMS key, you can use an encryption
|
3213
|
+
# context to add additional security to your encryption operation. If
|
3214
|
+
# you specify an `EncryptionContext` when encrypting data, you must
|
3215
|
+
# specify the same encryption context (a case-sensitive exact match)
|
3216
|
+
# when decrypting the data. Otherwise, the request to decrypt fails with
|
3217
|
+
# an `InvalidCiphertextException`. For more information, see [Encryption
|
2942
3218
|
# Context][1] in the *Key Management Service Developer Guide*.
|
2943
3219
|
#
|
2944
3220
|
# If you specify an asymmetric KMS key, you must also specify the
|
2945
3221
|
# encryption algorithm. The algorithm must be compatible with the KMS
|
2946
|
-
# key
|
3222
|
+
# key spec.
|
2947
3223
|
#
|
2948
3224
|
# When you use an asymmetric KMS key to encrypt or reencrypt data, be
|
2949
3225
|
# sure to record the KMS key and encryption algorithm that you choose.
|
@@ -2953,15 +3229,15 @@ module Aws::KMS
|
|
2953
3229
|
# fails.
|
2954
3230
|
#
|
2955
3231
|
# You are not required to supply the key ID and encryption algorithm
|
2956
|
-
# when you decrypt with symmetric KMS keys because KMS stores
|
2957
|
-
# information in the ciphertext blob. KMS cannot store metadata in
|
3232
|
+
# when you decrypt with symmetric encryption KMS keys because KMS stores
|
3233
|
+
# this information in the ciphertext blob. KMS cannot store metadata in
|
2958
3234
|
# ciphertext generated with asymmetric keys. The standard format for
|
2959
3235
|
# asymmetric key ciphertext does not include configurable fields.
|
2960
3236
|
#
|
2961
3237
|
# The maximum size of the data that you can encrypt varies with the type
|
2962
3238
|
# of KMS key and the encryption algorithm that you choose.
|
2963
3239
|
#
|
2964
|
-
# * Symmetric KMS keys
|
3240
|
+
# * Symmetric encryption KMS keys
|
2965
3241
|
#
|
2966
3242
|
# * `SYMMETRIC_DEFAULT`\: 4096 bytes
|
2967
3243
|
#
|
@@ -2985,9 +3261,11 @@ module Aws::KMS
|
|
2985
3261
|
#
|
2986
3262
|
# * `RSAES_OAEP_SHA_256`\: 446 bytes
|
2987
3263
|
#
|
3264
|
+
# * `SM2PKE`\: 1024 bytes (China Regions only)
|
3265
|
+
#
|
2988
3266
|
# The KMS key that you use for this operation must be in a compatible
|
2989
|
-
# key state. For details, see [Key
|
2990
|
-
#
|
3267
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
3268
|
+
# Management Service Developer Guide*.
|
2991
3269
|
#
|
2992
3270
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
2993
3271
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -3010,7 +3288,9 @@ module Aws::KMS
|
|
3010
3288
|
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
3011
3289
|
#
|
3012
3290
|
# @option params [required, String] :key_id
|
3013
|
-
# Identifies the KMS key to use in the encryption operation.
|
3291
|
+
# Identifies the KMS key to use in the encryption operation. The KMS key
|
3292
|
+
# must have a `KeyUsage` of `ENCRYPT_DECRYPT`. To find the `KeyUsage` of
|
3293
|
+
# a KMS key, use the DescribeKey operation.
|
3014
3294
|
#
|
3015
3295
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3016
3296
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3037,18 +3317,19 @@ module Aws::KMS
|
|
3037
3317
|
# @option params [Hash<String,String>] :encryption_context
|
3038
3318
|
# Specifies the encryption context that will be used to encrypt the
|
3039
3319
|
# data. An encryption context is valid only for [cryptographic
|
3040
|
-
# operations][1] with a symmetric KMS key. The standard
|
3041
|
-
# encryption algorithms that KMS uses do
|
3042
|
-
# context.
|
3320
|
+
# operations][1] with a symmetric encryption KMS key. The standard
|
3321
|
+
# asymmetric encryption algorithms and HMAC algorithms that KMS uses do
|
3322
|
+
# not support an encryption context.
|
3043
3323
|
#
|
3044
3324
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3045
|
-
# that
|
3325
|
+
# that represent additional authenticated data. When you use an
|
3046
3326
|
# encryption context to encrypt data, you must specify the same (an
|
3047
3327
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3048
|
-
# encryption context is
|
3049
|
-
#
|
3328
|
+
# encryption context is supported only on operations with symmetric
|
3329
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
3330
|
+
# an encryption context is optional, but it is strongly recommended.
|
3050
3331
|
#
|
3051
|
-
# For more information, see [Encryption
|
3332
|
+
# For more information, see [Encryption context][2] in the *Key
|
3052
3333
|
# Management Service Developer Guide*.
|
3053
3334
|
#
|
3054
3335
|
#
|
@@ -3075,9 +3356,9 @@ module Aws::KMS
|
|
3075
3356
|
# that you specify.
|
3076
3357
|
#
|
3077
3358
|
# This parameter is required only for asymmetric KMS keys. The default
|
3078
|
-
# value, `SYMMETRIC_DEFAULT`, is the algorithm used for symmetric
|
3079
|
-
# keys. If you are using an asymmetric KMS key, we
|
3080
|
-
# RSAES\_OAEP\_SHA\_256.
|
3359
|
+
# value, `SYMMETRIC_DEFAULT`, is the algorithm used for symmetric
|
3360
|
+
# encryption KMS keys. If you are using an asymmetric KMS key, we
|
3361
|
+
# recommend RSAES\_OAEP\_SHA\_256.
|
3081
3362
|
#
|
3082
3363
|
# @return [Types::EncryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
3083
3364
|
#
|
@@ -3110,14 +3391,14 @@ module Aws::KMS
|
|
3110
3391
|
# "EncryptionContextKey" => "EncryptionContextValue",
|
3111
3392
|
# },
|
3112
3393
|
# grant_tokens: ["GrantTokenType"],
|
3113
|
-
# encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256
|
3394
|
+
# encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, SM2PKE
|
3114
3395
|
# })
|
3115
3396
|
#
|
3116
3397
|
# @example Response structure
|
3117
3398
|
#
|
3118
3399
|
# resp.ciphertext_blob #=> String
|
3119
3400
|
# resp.key_id #=> String
|
3120
|
-
# resp.encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
3401
|
+
# resp.encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
|
3121
3402
|
#
|
3122
3403
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Encrypt AWS API Documentation
|
3123
3404
|
#
|
@@ -3128,22 +3409,27 @@ module Aws::KMS
|
|
3128
3409
|
req.send_request(options)
|
3129
3410
|
end
|
3130
3411
|
|
3131
|
-
#
|
3412
|
+
# Returns a unique symmetric data key for use outside of KMS. This
|
3132
3413
|
# operation returns a plaintext copy of the data key and a copy that is
|
3133
|
-
# encrypted under a KMS key that you specify.
|
3134
|
-
#
|
3135
|
-
# key
|
3414
|
+
# encrypted under a symmetric encryption KMS key that you specify. The
|
3415
|
+
# bytes in the plaintext key are random; they are not related to the
|
3416
|
+
# caller or the KMS key. You can use the plaintext key to encrypt your
|
3417
|
+
# data outside of KMS and store the encrypted data key with the
|
3418
|
+
# encrypted data.
|
3419
|
+
#
|
3420
|
+
# To generate a data key, specify the symmetric encryption KMS key that
|
3421
|
+
# will be used to encrypt the data key. You cannot use an asymmetric KMS
|
3422
|
+
# key to encrypt data keys. To get the type of your KMS key, use the
|
3423
|
+
# DescribeKey operation.
|
3136
3424
|
#
|
3137
|
-
#
|
3138
|
-
#
|
3139
|
-
#
|
3425
|
+
# You must also specify the length of the data key. Use either the
|
3426
|
+
# `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit
|
3427
|
+
# and 256-bit data keys, use the `KeySpec` parameter.
|
3140
3428
|
#
|
3141
|
-
# To generate
|
3142
|
-
#
|
3143
|
-
#
|
3144
|
-
#
|
3145
|
-
# key. Use either the `KeySpec` or `NumberOfBytes` parameters (but not
|
3146
|
-
# both). For 128-bit and 256-bit data keys, use the `KeySpec` parameter.
|
3429
|
+
# To generate an SM4 data key (China Regions only), specify a `KeySpec`
|
3430
|
+
# value of `AES_128` or `NumberOfBytes` value of `128`. The symmetric
|
3431
|
+
# encryption key used in China Regions to encrypt your data key is an
|
3432
|
+
# SM4 encryption key.
|
3147
3433
|
#
|
3148
3434
|
# To get only an encrypted copy of the data key, use
|
3149
3435
|
# GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key
|
@@ -3151,7 +3437,7 @@ module Aws::KMS
|
|
3151
3437
|
# GenerateDataKeyPairWithoutPlaintext operation. To get a
|
3152
3438
|
# cryptographically secure random byte string, use GenerateRandom.
|
3153
3439
|
#
|
3154
|
-
# You can use
|
3440
|
+
# You can use an optional encryption context to add additional security
|
3155
3441
|
# to the encryption operation. If you specify an `EncryptionContext`,
|
3156
3442
|
# you must specify the same encryption context (a case-sensitive exact
|
3157
3443
|
# match) when decrypting the encrypted data key. Otherwise, the request
|
@@ -3166,8 +3452,8 @@ module Aws::KMS
|
|
3166
3452
|
# Service Developer Guide*.
|
3167
3453
|
#
|
3168
3454
|
# The KMS key that you use for this operation must be in a compatible
|
3169
|
-
# key state. For details, see [Key
|
3170
|
-
#
|
3455
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
3456
|
+
# Management Service Developer Guide*.
|
3171
3457
|
#
|
3172
3458
|
# **How to use your data key**
|
3173
3459
|
#
|
@@ -3226,7 +3512,10 @@ module Aws::KMS
|
|
3226
3512
|
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
3227
3513
|
#
|
3228
3514
|
# @option params [required, String] :key_id
|
3229
|
-
#
|
3515
|
+
# Specifies the symmetric encryption KMS key that encrypts the data key.
|
3516
|
+
# You cannot specify an asymmetric KMS key or a KMS key in a custom key
|
3517
|
+
# store. To get the type and origin of your KMS key, use the DescribeKey
|
3518
|
+
# operation.
|
3230
3519
|
#
|
3231
3520
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3232
3521
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3252,13 +3541,14 @@ module Aws::KMS
|
|
3252
3541
|
# data key.
|
3253
3542
|
#
|
3254
3543
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3255
|
-
# that
|
3544
|
+
# that represent additional authenticated data. When you use an
|
3256
3545
|
# encryption context to encrypt data, you must specify the same (an
|
3257
3546
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3258
|
-
# encryption context is
|
3259
|
-
#
|
3547
|
+
# encryption context is supported only on operations with symmetric
|
3548
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
3549
|
+
# an encryption context is optional, but it is strongly recommended.
|
3260
3550
|
#
|
3261
|
-
# For more information, see [Encryption
|
3551
|
+
# For more information, see [Encryption context][1] in the *Key
|
3262
3552
|
# Management Service Developer Guide*.
|
3263
3553
|
#
|
3264
3554
|
#
|
@@ -3346,11 +3636,13 @@ module Aws::KMS
|
|
3346
3636
|
req.send_request(options)
|
3347
3637
|
end
|
3348
3638
|
|
3349
|
-
#
|
3639
|
+
# Returns a unique asymmetric data key pair for use outside of KMS. This
|
3350
3640
|
# operation returns a plaintext public key, a plaintext private key, and
|
3351
|
-
# a copy of the private key that is encrypted under the symmetric
|
3352
|
-
# key you specify. You can use the data key pair to
|
3353
|
-
# cryptography and implement digital signatures
|
3641
|
+
# a copy of the private key that is encrypted under the symmetric
|
3642
|
+
# encryption KMS key you specify. You can use the data key pair to
|
3643
|
+
# perform asymmetric cryptography and implement digital signatures
|
3644
|
+
# outside of KMS. The bytes in the keys are random; they not related to
|
3645
|
+
# the caller or to the KMS key that is used to encrypt the private key.
|
3354
3646
|
#
|
3355
3647
|
# You can use the public key that `GenerateDataKeyPair` returns to
|
3356
3648
|
# encrypt data or verify a signature outside of KMS. Then, store the
|
@@ -3358,16 +3650,17 @@ module Aws::KMS
|
|
3358
3650
|
# data or sign a message, you can use the Decrypt operation to decrypt
|
3359
3651
|
# the encrypted private key.
|
3360
3652
|
#
|
3361
|
-
# To generate a data key pair, you must specify a symmetric
|
3362
|
-
# encrypt the private key in a data key pair. You cannot use
|
3363
|
-
# asymmetric KMS key or a KMS key in a custom key store. To get the
|
3364
|
-
# and origin of your KMS key, use the DescribeKey operation.
|
3653
|
+
# To generate a data key pair, you must specify a symmetric encryption
|
3654
|
+
# KMS key to encrypt the private key in a data key pair. You cannot use
|
3655
|
+
# an asymmetric KMS key or a KMS key in a custom key store. To get the
|
3656
|
+
# type and origin of your KMS key, use the DescribeKey operation.
|
3365
3657
|
#
|
3366
3658
|
# Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve
|
3367
|
-
# (ECC) data key pair.
|
3368
|
-
#
|
3369
|
-
#
|
3370
|
-
#
|
3659
|
+
# (ECC) data key pair. In China Regions, you can also choose an SM2 data
|
3660
|
+
# key pair. KMS recommends that you use ECC key pairs for signing, and
|
3661
|
+
# use RSA and SM2 key pairs for either encryption or signing, but not
|
3662
|
+
# both. However, KMS cannot enforce any restrictions on the use of data
|
3663
|
+
# key pairs outside of KMS.
|
3371
3664
|
#
|
3372
3665
|
# If you are using the data key pair to encrypt data, or for any
|
3373
3666
|
# operation where you don't immediately need a private key, consider
|
@@ -3379,13 +3672,13 @@ module Aws::KMS
|
|
3379
3672
|
# to decrypt the encrypted private key in the data key pair.
|
3380
3673
|
#
|
3381
3674
|
# `GenerateDataKeyPair` returns a unique data key pair for each request.
|
3382
|
-
# The bytes in the keys are not related to the caller
|
3383
|
-
# that is used to encrypt the private key. The public key
|
3384
|
-
# DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC
|
3385
|
-
# The private key is a DER-encoded PKCS8 PrivateKeyInfo, as
|
3386
|
-
# [RFC 5958][2].
|
3675
|
+
# The bytes in the keys are random; they are not related to the caller
|
3676
|
+
# or the KMS key that is used to encrypt the private key. The public key
|
3677
|
+
# is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC
|
3678
|
+
# 5280][1]. The private key is a DER-encoded PKCS8 PrivateKeyInfo, as
|
3679
|
+
# specified in [RFC 5958][2].
|
3387
3680
|
#
|
3388
|
-
# You can use
|
3681
|
+
# You can use an optional encryption context to add additional security
|
3389
3682
|
# to the encryption operation. If you specify an `EncryptionContext`,
|
3390
3683
|
# you must specify the same encryption context (a case-sensitive exact
|
3391
3684
|
# match) when decrypting the encrypted data key. Otherwise, the request
|
@@ -3394,8 +3687,8 @@ module Aws::KMS
|
|
3394
3687
|
# Service Developer Guide*.
|
3395
3688
|
#
|
3396
3689
|
# The KMS key that you use for this operation must be in a compatible
|
3397
|
-
# key state. For details, see [Key
|
3398
|
-
#
|
3690
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
3691
|
+
# Management Service Developer Guide*.
|
3399
3692
|
#
|
3400
3693
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
3401
3694
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -3428,13 +3721,14 @@ module Aws::KMS
|
|
3428
3721
|
# private key in the data key pair.
|
3429
3722
|
#
|
3430
3723
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3431
|
-
# that
|
3724
|
+
# that represent additional authenticated data. When you use an
|
3432
3725
|
# encryption context to encrypt data, you must specify the same (an
|
3433
3726
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3434
|
-
# encryption context is
|
3435
|
-
#
|
3727
|
+
# encryption context is supported only on operations with symmetric
|
3728
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
3729
|
+
# an encryption context is optional, but it is strongly recommended.
|
3436
3730
|
#
|
3437
|
-
# For more information, see [Encryption
|
3731
|
+
# For more information, see [Encryption context][1] in the *Key
|
3438
3732
|
# Management Service Developer Guide*.
|
3439
3733
|
#
|
3440
3734
|
#
|
@@ -3442,10 +3736,10 @@ module Aws::KMS
|
|
3442
3736
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
|
3443
3737
|
#
|
3444
3738
|
# @option params [required, String] :key_id
|
3445
|
-
# Specifies the symmetric KMS key that encrypts the private
|
3446
|
-
# data key pair. You cannot specify an asymmetric KMS key or
|
3447
|
-
# in a custom key store. To get the type and origin of your
|
3448
|
-
# the DescribeKey operation.
|
3739
|
+
# Specifies the symmetric encryption KMS key that encrypts the private
|
3740
|
+
# key in the data key pair. You cannot specify an asymmetric KMS key or
|
3741
|
+
# a KMS key in a custom key store. To get the type and origin of your
|
3742
|
+
# KMS key, use the DescribeKey operation.
|
3449
3743
|
#
|
3450
3744
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3451
3745
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3469,10 +3763,12 @@ module Aws::KMS
|
|
3469
3763
|
# @option params [required, String] :key_pair_spec
|
3470
3764
|
# Determines the type of data key pair that is generated.
|
3471
3765
|
#
|
3472
|
-
# The KMS rule that restricts the use of asymmetric RSA KMS keys
|
3473
|
-
# encrypt and decrypt or to sign and verify (but not both), and the
|
3474
|
-
# that permits you to use ECC KMS keys only to sign and verify, are
|
3475
|
-
# effective on data key pairs, which are used outside of KMS.
|
3766
|
+
# The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys
|
3767
|
+
# to encrypt and decrypt or to sign and verify (but not both), and the
|
3768
|
+
# rule that permits you to use ECC KMS keys only to sign and verify, are
|
3769
|
+
# not effective on data key pairs, which are used outside of KMS. The
|
3770
|
+
# SM2 key spec is only available in China Regions. RSA and ECC
|
3771
|
+
# asymmetric key pairs are also available in China Regions.
|
3476
3772
|
#
|
3477
3773
|
# @option params [Array<String>] :grant_tokens
|
3478
3774
|
# A list of grant tokens.
|
@@ -3499,16 +3795,16 @@ module Aws::KMS
|
|
3499
3795
|
# @example Example: To generate an RSA key pair for encryption and decryption
|
3500
3796
|
#
|
3501
3797
|
# # This example generates an RSA data key pair for encryption and decryption. The operation returns a plaintext public key
|
3502
|
-
# # and private key, and a copy of the private key that is encrypted under a symmetric KMS key that you specify.
|
3798
|
+
# # and private key, and a copy of the private key that is encrypted under a symmetric encryption KMS key that you specify.
|
3503
3799
|
#
|
3504
3800
|
# resp = client.generate_data_key_pair({
|
3505
|
-
# 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.
|
3801
|
+
# 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.
|
3506
3802
|
# key_pair_spec: "RSA_3072", # The requested key spec of the RSA data key pair.
|
3507
3803
|
# })
|
3508
3804
|
#
|
3509
3805
|
# resp.to_h outputs the following:
|
3510
3806
|
# {
|
3511
|
-
# 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.
|
3807
|
+
# 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.
|
3512
3808
|
# key_pair_spec: "RSA_3072", # The actual key spec of the RSA data key pair.
|
3513
3809
|
# private_key_ciphertext_blob: "<binary data>", # The encrypted private key of the RSA data key pair.
|
3514
3810
|
# private_key_plaintext: "<binary data>", # The plaintext private key of the RSA data key pair.
|
@@ -3522,7 +3818,7 @@ module Aws::KMS
|
|
3522
3818
|
# "EncryptionContextKey" => "EncryptionContextValue",
|
3523
3819
|
# },
|
3524
3820
|
# key_id: "KeyIdType", # required
|
3525
|
-
# key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1
|
3821
|
+
# key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2
|
3526
3822
|
# grant_tokens: ["GrantTokenType"],
|
3527
3823
|
# })
|
3528
3824
|
#
|
@@ -3532,7 +3828,7 @@ module Aws::KMS
|
|
3532
3828
|
# resp.private_key_plaintext #=> String
|
3533
3829
|
# resp.public_key #=> String
|
3534
3830
|
# resp.key_id #=> String
|
3535
|
-
# resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1"
|
3831
|
+
# resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2"
|
3536
3832
|
#
|
3537
3833
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPair AWS API Documentation
|
3538
3834
|
#
|
@@ -3543,11 +3839,12 @@ module Aws::KMS
|
|
3543
3839
|
req.send_request(options)
|
3544
3840
|
end
|
3545
3841
|
|
3546
|
-
#
|
3547
|
-
#
|
3548
|
-
#
|
3549
|
-
#
|
3550
|
-
#
|
3842
|
+
# Returns a unique asymmetric data key pair for use outside of KMS. This
|
3843
|
+
# operation returns a plaintext public key and a copy of the private key
|
3844
|
+
# that is encrypted under the symmetric encryption KMS key you specify.
|
3845
|
+
# Unlike GenerateDataKeyPair, this operation does not return a plaintext
|
3846
|
+
# private key. The bytes in the keys are random; they are not related to
|
3847
|
+
# the caller or to the KMS key that is used to encrypt the private key.
|
3551
3848
|
#
|
3552
3849
|
# You can use the public key that `GenerateDataKeyPairWithoutPlaintext`
|
3553
3850
|
# returns to encrypt data or verify a signature outside of KMS. Then,
|
@@ -3555,16 +3852,17 @@ module Aws::KMS
|
|
3555
3852
|
# decrypt data or sign a message, you can use the Decrypt operation to
|
3556
3853
|
# decrypt the encrypted private key.
|
3557
3854
|
#
|
3558
|
-
# To generate a data key pair, you must specify a symmetric
|
3559
|
-
# encrypt the private key in a data key pair. You cannot use
|
3560
|
-
# asymmetric KMS key or a KMS key in a custom key store. To get the
|
3561
|
-
# and origin of your KMS key, use the DescribeKey operation.
|
3855
|
+
# To generate a data key pair, you must specify a symmetric encryption
|
3856
|
+
# KMS key to encrypt the private key in a data key pair. You cannot use
|
3857
|
+
# an asymmetric KMS key or a KMS key in a custom key store. To get the
|
3858
|
+
# type and origin of your KMS key, use the DescribeKey operation.
|
3562
3859
|
#
|
3563
3860
|
# Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve
|
3564
|
-
# (ECC) data key pair.
|
3565
|
-
#
|
3566
|
-
#
|
3567
|
-
#
|
3861
|
+
# (ECC) data key pair. In China Regions, you can also choose an SM2 data
|
3862
|
+
# key pair. KMS recommends that you use ECC key pairs for signing, and
|
3863
|
+
# use RSA and SM2 key pairs for either encryption or signing, but not
|
3864
|
+
# both. However, KMS cannot enforce any restrictions on the use of data
|
3865
|
+
# key pairs outside of KMS.
|
3568
3866
|
#
|
3569
3867
|
# `GenerateDataKeyPairWithoutPlaintext` returns a unique data key pair
|
3570
3868
|
# for each request. The bytes in the key are not related to the caller
|
@@ -3572,7 +3870,7 @@ module Aws::KMS
|
|
3572
3870
|
# a DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC
|
3573
3871
|
# 5280][1].
|
3574
3872
|
#
|
3575
|
-
# You can use
|
3873
|
+
# You can use an optional encryption context to add additional security
|
3576
3874
|
# to the encryption operation. If you specify an `EncryptionContext`,
|
3577
3875
|
# you must specify the same encryption context (a case-sensitive exact
|
3578
3876
|
# match) when decrypting the encrypted data key. Otherwise, the request
|
@@ -3581,8 +3879,8 @@ module Aws::KMS
|
|
3581
3879
|
# Service Developer Guide*.
|
3582
3880
|
#
|
3583
3881
|
# The KMS key that you use for this operation must be in a compatible
|
3584
|
-
# key state. For details, see [Key
|
3585
|
-
#
|
3882
|
+
# key state. For details, see [Key states of KMS keys][3] in the *Key
|
3883
|
+
# Management Service Developer Guide*.
|
3586
3884
|
#
|
3587
3885
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
3588
3886
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -3615,13 +3913,14 @@ module Aws::KMS
|
|
3615
3913
|
# private key in the data key pair.
|
3616
3914
|
#
|
3617
3915
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3618
|
-
# that
|
3916
|
+
# that represent additional authenticated data. When you use an
|
3619
3917
|
# encryption context to encrypt data, you must specify the same (an
|
3620
3918
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3621
|
-
# encryption context is
|
3622
|
-
#
|
3919
|
+
# encryption context is supported only on operations with symmetric
|
3920
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
3921
|
+
# an encryption context is optional, but it is strongly recommended.
|
3623
3922
|
#
|
3624
|
-
# For more information, see [Encryption
|
3923
|
+
# For more information, see [Encryption context][1] in the *Key
|
3625
3924
|
# Management Service Developer Guide*.
|
3626
3925
|
#
|
3627
3926
|
#
|
@@ -3629,10 +3928,10 @@ module Aws::KMS
|
|
3629
3928
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
|
3630
3929
|
#
|
3631
3930
|
# @option params [required, String] :key_id
|
3632
|
-
# Specifies the KMS key that encrypts the private
|
3633
|
-
# pair. You
|
3634
|
-
#
|
3635
|
-
#
|
3931
|
+
# Specifies the symmetric encryption KMS key that encrypts the private
|
3932
|
+
# key in the data key pair. You cannot specify an asymmetric KMS key or
|
3933
|
+
# a KMS key in a custom key store. To get the type and origin of your
|
3934
|
+
# KMS key, use the DescribeKey operation.
|
3636
3935
|
#
|
3637
3936
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3638
3937
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3656,10 +3955,12 @@ module Aws::KMS
|
|
3656
3955
|
# @option params [required, String] :key_pair_spec
|
3657
3956
|
# Determines the type of data key pair that is generated.
|
3658
3957
|
#
|
3659
|
-
# The KMS rule that restricts the use of asymmetric RSA KMS keys
|
3660
|
-
# encrypt and decrypt or to sign and verify (but not both), and the
|
3661
|
-
# that permits you to use ECC KMS keys only to sign and verify, are
|
3662
|
-
# effective on data key pairs, which are used outside of KMS.
|
3958
|
+
# The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys
|
3959
|
+
# to encrypt and decrypt or to sign and verify (but not both), and the
|
3960
|
+
# rule that permits you to use ECC KMS keys only to sign and verify, are
|
3961
|
+
# not effective on data key pairs, which are used outside of KMS. The
|
3962
|
+
# SM2 key spec is only available in China Regions. RSA and ECC
|
3963
|
+
# asymmetric key pairs are also available in China Regions.
|
3663
3964
|
#
|
3664
3965
|
# @option params [Array<String>] :grant_tokens
|
3665
3966
|
# A list of grant tokens.
|
@@ -3685,16 +3986,16 @@ module Aws::KMS
|
|
3685
3986
|
# @example Example: To generate an asymmetric data key pair without a plaintext key
|
3686
3987
|
#
|
3687
3988
|
# # This example returns an asymmetric elliptic curve (ECC) data key pair. The private key is encrypted under the symmetric
|
3688
|
-
# # KMS key that you specify. This operation doesn't return a plaintext (unencrypted) private key.
|
3989
|
+
# # encryption KMS key that you specify. This operation doesn't return a plaintext (unencrypted) private key.
|
3689
3990
|
#
|
3690
3991
|
# resp = client.generate_data_key_pair_without_plaintext({
|
3691
|
-
# 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.
|
3992
|
+
# 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.
|
3692
3993
|
# key_pair_spec: "ECC_NIST_P521", # The requested key spec of the ECC asymmetric data key pair.
|
3693
3994
|
# })
|
3694
3995
|
#
|
3695
3996
|
# resp.to_h outputs the following:
|
3696
3997
|
# {
|
3697
|
-
# 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.
|
3998
|
+
# 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.
|
3698
3999
|
# key_pair_spec: "ECC_NIST_P521", # The actual key spec of the ECC asymmetric data key pair.
|
3699
4000
|
# private_key_ciphertext_blob: "<binary data>", # The encrypted private key of the asymmetric ECC data key pair.
|
3700
4001
|
# public_key: "<binary data>", # The public key (plaintext).
|
@@ -3707,7 +4008,7 @@ module Aws::KMS
|
|
3707
4008
|
# "EncryptionContextKey" => "EncryptionContextValue",
|
3708
4009
|
# },
|
3709
4010
|
# key_id: "KeyIdType", # required
|
3710
|
-
# key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1
|
4011
|
+
# key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2
|
3711
4012
|
# grant_tokens: ["GrantTokenType"],
|
3712
4013
|
# })
|
3713
4014
|
#
|
@@ -3716,7 +4017,7 @@ module Aws::KMS
|
|
3716
4017
|
# resp.private_key_ciphertext_blob #=> String
|
3717
4018
|
# resp.public_key #=> String
|
3718
4019
|
# resp.key_id #=> String
|
3719
|
-
# resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1"
|
4020
|
+
# resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2"
|
3720
4021
|
#
|
3721
4022
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintext AWS API Documentation
|
3722
4023
|
#
|
@@ -3727,13 +4028,15 @@ module Aws::KMS
|
|
3727
4028
|
req.send_request(options)
|
3728
4029
|
end
|
3729
4030
|
|
3730
|
-
#
|
3731
|
-
#
|
3732
|
-
#
|
3733
|
-
#
|
4031
|
+
# Returns a unique symmetric data key for use outside of KMS. This
|
4032
|
+
# operation returns a data key that is encrypted under a symmetric
|
4033
|
+
# encryption KMS key that you specify. The bytes in the key are random;
|
4034
|
+
# they are not related to the caller or to the KMS key.
|
3734
4035
|
#
|
3735
4036
|
# `GenerateDataKeyWithoutPlaintext` is identical to the GenerateDataKey
|
3736
|
-
# operation except that
|
4037
|
+
# operation except that it does not return a plaintext copy of the data
|
4038
|
+
# key.
|
4039
|
+
#
|
3737
4040
|
# This operation is useful for systems that need to encrypt data at some
|
3738
4041
|
# point, but not immediately. When you need to encrypt the data, you
|
3739
4042
|
# call the Decrypt operation on the encrypted copy of the key.
|
@@ -3748,19 +4051,18 @@ module Aws::KMS
|
|
3748
4051
|
# data key. In this system, the component that creates the containers
|
3749
4052
|
# never sees the plaintext data key.
|
3750
4053
|
#
|
3751
|
-
#
|
3752
|
-
#
|
3753
|
-
# key that is used to encrypt the private key.
|
4054
|
+
# To request an asymmetric data key pair, use the GenerateDataKeyPair or
|
4055
|
+
# GenerateDataKeyPairWithoutPlaintext operations.
|
3754
4056
|
#
|
3755
|
-
# To generate a data key, you must specify the symmetric KMS
|
3756
|
-
# used to encrypt the data key. You cannot use an asymmetric
|
3757
|
-
#
|
3758
|
-
# DescribeKey operation.
|
4057
|
+
# To generate a data key, you must specify the symmetric encryption KMS
|
4058
|
+
# key that is used to encrypt the data key. You cannot use an asymmetric
|
4059
|
+
# KMS key or a key in a custom key store to generate a data key. To get
|
4060
|
+
# the type of your KMS key, use the DescribeKey operation.
|
3759
4061
|
#
|
3760
4062
|
# If the operation succeeds, you will find the encrypted copy of the
|
3761
4063
|
# data key in the `CiphertextBlob` field.
|
3762
4064
|
#
|
3763
|
-
# You can use
|
4065
|
+
# You can use an optional encryption context to add additional security
|
3764
4066
|
# to the encryption operation. If you specify an `EncryptionContext`,
|
3765
4067
|
# you must specify the same encryption context (a case-sensitive exact
|
3766
4068
|
# match) when decrypting the encrypted data key. Otherwise, the request
|
@@ -3769,8 +4071,8 @@ module Aws::KMS
|
|
3769
4071
|
# Service Developer Guide*.
|
3770
4072
|
#
|
3771
4073
|
# The KMS key that you use for this operation must be in a compatible
|
3772
|
-
# key state. For details, see [Key
|
3773
|
-
#
|
4074
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
4075
|
+
# Management Service Developer Guide*.
|
3774
4076
|
#
|
3775
4077
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
3776
4078
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -3798,7 +4100,10 @@ module Aws::KMS
|
|
3798
4100
|
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
3799
4101
|
#
|
3800
4102
|
# @option params [required, String] :key_id
|
3801
|
-
#
|
4103
|
+
# Specifies the symmetric encryption KMS key that encrypts the data key.
|
4104
|
+
# You cannot specify an asymmetric KMS key or a KMS key in a custom key
|
4105
|
+
# store. To get the type and origin of your KMS key, use the DescribeKey
|
4106
|
+
# operation.
|
3802
4107
|
#
|
3803
4108
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
3804
4109
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -3824,13 +4129,14 @@ module Aws::KMS
|
|
3824
4129
|
# data key.
|
3825
4130
|
#
|
3826
4131
|
# An *encryption context* is a collection of non-secret key-value pairs
|
3827
|
-
# that
|
4132
|
+
# that represent additional authenticated data. When you use an
|
3828
4133
|
# encryption context to encrypt data, you must specify the same (an
|
3829
4134
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
3830
|
-
# encryption context is
|
3831
|
-
#
|
4135
|
+
# encryption context is supported only on operations with symmetric
|
4136
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
4137
|
+
# an encryption context is optional, but it is strongly recommended.
|
3832
4138
|
#
|
3833
|
-
# For more information, see [Encryption
|
4139
|
+
# For more information, see [Encryption context][1] in the *Key
|
3834
4140
|
# Management Service Developer Guide*.
|
3835
4141
|
#
|
3836
4142
|
#
|
@@ -3908,8 +4214,140 @@ module Aws::KMS
|
|
3908
4214
|
req.send_request(options)
|
3909
4215
|
end
|
3910
4216
|
|
4217
|
+
# Generates a hash-based message authentication code (HMAC) for a
|
4218
|
+
# message using an HMAC KMS key and a MAC algorithm that the key
|
4219
|
+
# supports. The MAC algorithm computes the HMAC for the message and the
|
4220
|
+
# key as described in [RFC 2104][1].
|
4221
|
+
#
|
4222
|
+
# You can use the HMAC that this operation generates with the VerifyMac
|
4223
|
+
# operation to demonstrate that the original message has not changed.
|
4224
|
+
# Also, because a secret key is used to create the hash, you can verify
|
4225
|
+
# that the party that generated the hash has the required secret key.
|
4226
|
+
# This operation is part of KMS support for HMAC KMS keys. For details,
|
4227
|
+
# see [HMAC keys in KMS][2] in the <i> <i>Key Management Service
|
4228
|
+
# Developer Guide</i> </i>.
|
4229
|
+
#
|
4230
|
+
# <note markdown="1"> Best practices recommend that you limit the time during which any
|
4231
|
+
# signing mechanism, including an HMAC, is effective. This deters an
|
4232
|
+
# attack where the actor uses a signed message to establish validity
|
4233
|
+
# repeatedly or long after the message is superseded. HMAC tags do not
|
4234
|
+
# include a timestamp, but you can include a timestamp in the token or
|
4235
|
+
# message to help you detect when its time to refresh the HMAC.
|
4236
|
+
#
|
4237
|
+
# </note>
|
4238
|
+
#
|
4239
|
+
# The KMS key that you use for this operation must be in a compatible
|
4240
|
+
# key state. For details, see [Key states of KMS keys][3] in the *Key
|
4241
|
+
# Management Service Developer Guide*.
|
4242
|
+
#
|
4243
|
+
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
4244
|
+
# in a different Amazon Web Services account, specify the key ARN or
|
4245
|
+
# alias ARN in the value of the `KeyId` parameter.
|
4246
|
+
#
|
4247
|
+
# **Required permissions**\: [kms:GenerateMac][4] (key policy)
|
4248
|
+
#
|
4249
|
+
# **Related operations**\: VerifyMac
|
4250
|
+
#
|
4251
|
+
#
|
4252
|
+
#
|
4253
|
+
# [1]: https://datatracker.ietf.org/doc/html/rfc2104
|
4254
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
4255
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
4256
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
4257
|
+
#
|
4258
|
+
# @option params [required, String, StringIO, File] :message
|
4259
|
+
# The message to be hashed. Specify a message of up to 4,096 bytes.
|
4260
|
+
#
|
4261
|
+
# `GenerateMac` and VerifyMac do not provide special handling for
|
4262
|
+
# message digests. If you generate an HMAC for a hash digest of a
|
4263
|
+
# message, you must verify the HMAC of the same hash digest.
|
4264
|
+
#
|
4265
|
+
# @option params [required, String] :key_id
|
4266
|
+
# The HMAC KMS key to use in the operation. The MAC algorithm computes
|
4267
|
+
# the HMAC for the message and the key as described in [RFC 2104][1].
|
4268
|
+
#
|
4269
|
+
# To identify an HMAC KMS key, use the DescribeKey operation and see the
|
4270
|
+
# `KeySpec` field in the response.
|
4271
|
+
#
|
4272
|
+
#
|
4273
|
+
#
|
4274
|
+
# [1]: https://datatracker.ietf.org/doc/html/rfc2104
|
4275
|
+
#
|
4276
|
+
# @option params [required, String] :mac_algorithm
|
4277
|
+
# The MAC algorithm used in the operation.
|
4278
|
+
#
|
4279
|
+
# The algorithm must be compatible with the HMAC KMS key that you
|
4280
|
+
# specify. To find the MAC algorithms that your HMAC KMS key supports,
|
4281
|
+
# use the DescribeKey operation and see the `MacAlgorithms` field in the
|
4282
|
+
# `DescribeKey` response.
|
4283
|
+
#
|
4284
|
+
# @option params [Array<String>] :grant_tokens
|
4285
|
+
# A list of grant tokens.
|
4286
|
+
#
|
4287
|
+
# Use a grant token when your permission to call this operation comes
|
4288
|
+
# from a new grant that has not yet achieved *eventual consistency*. For
|
4289
|
+
# more information, see [Grant token][1] and [Using a grant token][2] in
|
4290
|
+
# the *Key Management Service Developer Guide*.
|
4291
|
+
#
|
4292
|
+
#
|
4293
|
+
#
|
4294
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
|
4295
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
|
4296
|
+
#
|
4297
|
+
# @return [Types::GenerateMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
4298
|
+
#
|
4299
|
+
# * {Types::GenerateMacResponse#mac #mac} => String
|
4300
|
+
# * {Types::GenerateMacResponse#mac_algorithm #mac_algorithm} => String
|
4301
|
+
# * {Types::GenerateMacResponse#key_id #key_id} => String
|
4302
|
+
#
|
4303
|
+
#
|
4304
|
+
# @example Example: To generate an HMAC for a message
|
4305
|
+
#
|
4306
|
+
# # This example generates an HMAC for a message, an HMAC KMS key, and a MAC algorithm. The algorithm must be supported by
|
4307
|
+
# # the specified HMAC KMS key.
|
4308
|
+
#
|
4309
|
+
# resp = client.generate_mac({
|
4310
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The HMAC KMS key input to the HMAC algorithm.
|
4311
|
+
# mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm requested for the operation.
|
4312
|
+
# message: "Hello World", # The message input to the HMAC algorithm.
|
4313
|
+
# })
|
4314
|
+
#
|
4315
|
+
# resp.to_h outputs the following:
|
4316
|
+
# {
|
4317
|
+
# 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.
|
4318
|
+
# mac: "<HMAC_TAG>", # The HMAC tag that results from this operation.
|
4319
|
+
# mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm used in the operation.
|
4320
|
+
# }
|
4321
|
+
#
|
4322
|
+
# @example Request syntax with placeholder values
|
4323
|
+
#
|
4324
|
+
# resp = client.generate_mac({
|
4325
|
+
# message: "data", # required
|
4326
|
+
# key_id: "KeyIdType", # required
|
4327
|
+
# mac_algorithm: "HMAC_SHA_224", # required, accepts HMAC_SHA_224, HMAC_SHA_256, HMAC_SHA_384, HMAC_SHA_512
|
4328
|
+
# grant_tokens: ["GrantTokenType"],
|
4329
|
+
# })
|
4330
|
+
#
|
4331
|
+
# @example Response structure
|
4332
|
+
#
|
4333
|
+
# resp.mac #=> String
|
4334
|
+
# resp.mac_algorithm #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
4335
|
+
# resp.key_id #=> String
|
4336
|
+
#
|
4337
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateMac AWS API Documentation
|
4338
|
+
#
|
4339
|
+
# @overload generate_mac(params = {})
|
4340
|
+
# @param [Hash] params ({})
|
4341
|
+
def generate_mac(params = {}, options = {})
|
4342
|
+
req = build_request(:generate_mac, params)
|
4343
|
+
req.send_request(options)
|
4344
|
+
end
|
4345
|
+
|
3911
4346
|
# Returns a random byte string that is cryptographically secure.
|
3912
4347
|
#
|
4348
|
+
# You must use the `NumberOfBytes` parameter to specify the length of
|
4349
|
+
# the random byte string. There is no default value for string length.
|
4350
|
+
#
|
3913
4351
|
# By default, the random byte string is generated in KMS. To generate
|
3914
4352
|
# the byte string in the CloudHSM cluster that is associated with a
|
3915
4353
|
# [custom key store][1], specify the custom key store ID.
|
@@ -3923,6 +4361,9 @@ module Aws::KMS
|
|
3923
4361
|
# For more information about entropy and random number generation, see
|
3924
4362
|
# [Key Management Service Cryptographic Details][4].
|
3925
4363
|
#
|
4364
|
+
# **Cross-account use**\: Not applicable. `GenerateRandom` does not use
|
4365
|
+
# any account-specific resources, such as KMS keys.
|
4366
|
+
#
|
3926
4367
|
# **Required permissions**\: [kms:GenerateRandom][5] (IAM policy)
|
3927
4368
|
#
|
3928
4369
|
#
|
@@ -3934,7 +4375,7 @@ module Aws::KMS
|
|
3934
4375
|
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
3935
4376
|
#
|
3936
4377
|
# @option params [Integer] :number_of_bytes
|
3937
|
-
# The length of the byte string.
|
4378
|
+
# The length of the random byte string. This parameter is required.
|
3938
4379
|
#
|
3939
4380
|
# @option params [String] :custom_key_store_id
|
3940
4381
|
# Generates the random byte string in the CloudHSM cluster that is
|
@@ -4057,30 +4498,56 @@ module Aws::KMS
|
|
4057
4498
|
# Gets a Boolean value that indicates whether [automatic rotation of the
|
4058
4499
|
# key material][1] is enabled for the specified KMS key.
|
4059
4500
|
#
|
4060
|
-
#
|
4061
|
-
#
|
4062
|
-
#
|
4063
|
-
#
|
4064
|
-
#
|
4501
|
+
# When you enable automatic rotation for [customer managed KMS keys][2],
|
4502
|
+
# KMS rotates the key material of the KMS key one year (approximately
|
4503
|
+
# 365 days) from the enable date and every year thereafter. You can
|
4504
|
+
# monitor rotation of the key material for your KMS keys in CloudTrail
|
4505
|
+
# and Amazon CloudWatch.
|
4506
|
+
#
|
4507
|
+
# Automatic key rotation is supported only on [symmetric encryption KMS
|
4508
|
+
# keys][3]. You cannot enable or disable automatic rotation of
|
4509
|
+
# [asymmetric KMS keys][4], [HMAC KMS keys][5], KMS keys with [imported
|
4510
|
+
# key material][6], or KMS keys in a [custom key store][7]. The key
|
4511
|
+
# rotation status of these KMS keys is always `false`. To enable or
|
4512
|
+
# disable automatic rotation of a set of related [multi-Region keys][8],
|
4513
|
+
# set the property on the primary key..
|
4514
|
+
#
|
4515
|
+
# You can enable (EnableKeyRotation) and disable automatic rotation
|
4516
|
+
# (DisableKeyRotation) of the key material in customer managed KMS keys.
|
4517
|
+
# Key material rotation of [Amazon Web Services managed KMS keys][9] is
|
4518
|
+
# not configurable. KMS always rotates the key material in Amazon Web
|
4519
|
+
# Services managed KMS keys every year. The key rotation status for
|
4520
|
+
# Amazon Web Services managed KMS keys is always `true`.
|
4521
|
+
#
|
4522
|
+
# <note markdown="1"> In May 2022, KMS changed the rotation schedule for Amazon Web Services
|
4523
|
+
# managed keys from every three years to every year. For details, see
|
4524
|
+
# EnableKeyRotation.
|
4525
|
+
#
|
4526
|
+
# </note>
|
4065
4527
|
#
|
4066
4528
|
# The KMS key that you use for this operation must be in a compatible
|
4067
|
-
# key state. For details, see [Key
|
4068
|
-
#
|
4529
|
+
# key state. For details, see [Key states of KMS keys][10] in the *Key
|
4530
|
+
# Management Service Developer Guide*.
|
4069
4531
|
#
|
4070
4532
|
# * Disabled: The key rotation status does not change when you disable a
|
4071
4533
|
# KMS key. However, while the KMS key is disabled, KMS does not rotate
|
4072
|
-
# the key material.
|
4534
|
+
# the key material. When you re-enable the KMS key, rotation resumes.
|
4535
|
+
# If the key material in the re-enabled KMS key hasn't been rotated
|
4536
|
+
# in one year, KMS rotates it immediately, and every year thereafter.
|
4537
|
+
# If it's been less than a year since the key material in the
|
4538
|
+
# re-enabled KMS key was rotated, the KMS key resumes its prior
|
4539
|
+
# rotation schedule.
|
4073
4540
|
#
|
4074
4541
|
# * Pending deletion: While a KMS key is pending deletion, its key
|
4075
4542
|
# rotation status is `false` and KMS does not rotate the key material.
|
4076
|
-
# If you cancel the deletion, the original key rotation status
|
4077
|
-
#
|
4543
|
+
# If you cancel the deletion, the original key rotation status returns
|
4544
|
+
# to `true`.
|
4078
4545
|
#
|
4079
4546
|
# **Cross-account use**\: Yes. To perform this operation on a KMS key in
|
4080
4547
|
# a different Amazon Web Services account, specify the key ARN in the
|
4081
4548
|
# value of the `KeyId` parameter.
|
4082
4549
|
#
|
4083
|
-
# **Required permissions**\: [kms:GetKeyRotationStatus][
|
4550
|
+
# **Required permissions**\: [kms:GetKeyRotationStatus][11] (key policy)
|
4084
4551
|
#
|
4085
4552
|
# **Related operations:**
|
4086
4553
|
#
|
@@ -4091,12 +4558,16 @@ module Aws::KMS
|
|
4091
4558
|
#
|
4092
4559
|
#
|
4093
4560
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
|
4094
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4095
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4096
|
-
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4097
|
-
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4098
|
-
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4099
|
-
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4561
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
4562
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks
|
4563
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
4564
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
4565
|
+
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
|
4566
|
+
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
|
4567
|
+
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
|
4568
|
+
# [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
4569
|
+
# [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
4570
|
+
# [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
4100
4571
|
#
|
4101
4572
|
# @option params [required, String] :key_id
|
4102
4573
|
# Gets the rotation status for the specified KMS key.
|
@@ -4151,21 +4622,22 @@ module Aws::KMS
|
|
4151
4622
|
req.send_request(options)
|
4152
4623
|
end
|
4153
4624
|
|
4154
|
-
# Returns the items you need to import key material into a symmetric
|
4155
|
-
#
|
4156
|
-
#
|
4157
|
-
#
|
4625
|
+
# Returns the items you need to import key material into a symmetric
|
4626
|
+
# encryption KMS key. For more information about importing key material
|
4627
|
+
# into KMS, see [Importing key material][1] in the *Key Management
|
4628
|
+
# Service Developer Guide*.
|
4158
4629
|
#
|
4159
4630
|
# This operation returns a public key and an import token. Use the
|
4160
4631
|
# public key to encrypt the symmetric key material. Store the import
|
4161
4632
|
# token to send with a subsequent ImportKeyMaterial request.
|
4162
4633
|
#
|
4163
|
-
# You must specify the key ID of the symmetric KMS key into
|
4164
|
-
# will import key material. This KMS key's `Origin` must be
|
4165
|
-
# You must also specify the wrapping algorithm and type of
|
4166
|
-
# (public key) that you will use to encrypt the key
|
4167
|
-
# perform this operation on an asymmetric KMS key
|
4168
|
-
# different Amazon Web Services
|
4634
|
+
# You must specify the key ID of the symmetric encryption KMS key into
|
4635
|
+
# which you will import key material. This KMS key's `Origin` must be
|
4636
|
+
# `EXTERNAL`. You must also specify the wrapping algorithm and type of
|
4637
|
+
# wrapping key (public key) that you will use to encrypt the key
|
4638
|
+
# material. You cannot perform this operation on an asymmetric KMS key,
|
4639
|
+
# an HMAC KMS key, or on any KMS key in a different Amazon Web Services
|
4640
|
+
# account.
|
4169
4641
|
#
|
4170
4642
|
# To import key material, you must use the public key and import token
|
4171
4643
|
# from the same response. These items are valid for 24 hours. The
|
@@ -4175,8 +4647,8 @@ module Aws::KMS
|
|
4175
4647
|
# `GetParametersForImport` request.
|
4176
4648
|
#
|
4177
4649
|
# The KMS key that you use for this operation must be in a compatible
|
4178
|
-
# key state. For details, see [Key
|
4179
|
-
#
|
4650
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
4651
|
+
# Management Service Developer Guide*.
|
4180
4652
|
#
|
4181
4653
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
4182
4654
|
# key in a different Amazon Web Services account.
|
@@ -4197,8 +4669,8 @@ module Aws::KMS
|
|
4197
4669
|
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
4198
4670
|
#
|
4199
4671
|
# @option params [required, String] :key_id
|
4200
|
-
# The identifier of the symmetric KMS key into which you will
|
4201
|
-
# material. The `Origin` of the KMS key must be `EXTERNAL`.
|
4672
|
+
# The identifier of the symmetric encryption KMS key into which you will
|
4673
|
+
# import key material. The `Origin` of the KMS key must be `EXTERNAL`.
|
4202
4674
|
#
|
4203
4675
|
# Specify the key ID or key ARN of the KMS key.
|
4204
4676
|
#
|
@@ -4281,9 +4753,8 @@ module Aws::KMS
|
|
4281
4753
|
# callers with `kms:GetPublicKey` permission can download the public key
|
4282
4754
|
# of an asymmetric KMS key. You can share the public key to allow others
|
4283
4755
|
# to encrypt messages and verify signatures outside of KMS. For
|
4284
|
-
# information about
|
4285
|
-
#
|
4286
|
-
# Developer Guide*.
|
4756
|
+
# information about asymmetric KMS keys, see [Asymmetric KMS keys][1] in
|
4757
|
+
# the *Key Management Service Developer Guide*.
|
4287
4758
|
#
|
4288
4759
|
# You do not need to download the public key. Instead, you can use the
|
4289
4760
|
# public key within KMS by calling the Encrypt, ReEncrypt, or Verify
|
@@ -4291,8 +4762,12 @@ module Aws::KMS
|
|
4291
4762
|
# the public key within KMS, you benefit from the authentication,
|
4292
4763
|
# authorization, and logging that are part of every KMS operation. You
|
4293
4764
|
# also reduce of risk of encrypting data that cannot be decrypted. These
|
4294
|
-
# features are not effective outside of KMS.
|
4295
|
-
#
|
4765
|
+
# features are not effective outside of KMS.
|
4766
|
+
#
|
4767
|
+
# To verify a signature outside of KMS with an SM2 public key (China
|
4768
|
+
# Regions only), you must specify the distinguishing ID. By default, KMS
|
4769
|
+
# uses `1234567812345678` as the distinguishing ID. For more
|
4770
|
+
# information, see [Offline verification with SM2 key pairs][2].
|
4296
4771
|
#
|
4297
4772
|
# To help you use the public key safely outside of KMS, `GetPublicKey`
|
4298
4773
|
# returns important information about the public key in the response,
|
@@ -4315,8 +4790,8 @@ module Aws::KMS
|
|
4315
4790
|
# in a verification operation.
|
4316
4791
|
#
|
4317
4792
|
# The KMS key that you use for this operation must be in a compatible
|
4318
|
-
# key state. For details, see [Key
|
4319
|
-
#
|
4793
|
+
# key state. For details, see [Key states of KMS keys][7] in the *Key
|
4794
|
+
# Management Service Developer Guide*.
|
4320
4795
|
#
|
4321
4796
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
4322
4797
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -4329,7 +4804,7 @@ module Aws::KMS
|
|
4329
4804
|
#
|
4330
4805
|
#
|
4331
4806
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
4332
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
4807
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
|
4333
4808
|
# [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeySpec
|
4334
4809
|
# [4]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage
|
4335
4810
|
# [5]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms
|
@@ -4416,13 +4891,13 @@ module Aws::KMS
|
|
4416
4891
|
#
|
4417
4892
|
# resp.key_id #=> String
|
4418
4893
|
# resp.public_key #=> String
|
4419
|
-
# 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"
|
4420
|
-
# 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"
|
4421
|
-
# resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT"
|
4894
|
+
# 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", "SM2"
|
4895
|
+
# 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", "SM2"
|
4896
|
+
# resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC"
|
4422
4897
|
# resp.encryption_algorithms #=> Array
|
4423
|
-
# resp.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
4898
|
+
# resp.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
|
4424
4899
|
# resp.signing_algorithms #=> Array
|
4425
|
-
# resp.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512"
|
4900
|
+
# resp.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
|
4426
4901
|
#
|
4427
4902
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKey AWS API Documentation
|
4428
4903
|
#
|
@@ -4433,16 +4908,17 @@ module Aws::KMS
|
|
4433
4908
|
req.send_request(options)
|
4434
4909
|
end
|
4435
4910
|
|
4436
|
-
# Imports key material into an existing symmetric
|
4437
|
-
# created without key material. After you successfully import
|
4438
|
-
# material into a KMS key, you can [reimport the same key
|
4439
|
-
# into that KMS key, but you cannot import different key
|
4440
|
-
#
|
4441
|
-
#
|
4442
|
-
#
|
4443
|
-
#
|
4444
|
-
#
|
4445
|
-
#
|
4911
|
+
# Imports key material into an existing symmetric encryption KMS key
|
4912
|
+
# that was created without key material. After you successfully import
|
4913
|
+
# key material into a KMS key, you can [reimport the same key
|
4914
|
+
# material][1] into that KMS key, but you cannot import different key
|
4915
|
+
# material.
|
4916
|
+
#
|
4917
|
+
# You cannot perform this operation on an asymmetric KMS key, an HMAC
|
4918
|
+
# KMS key, or on any KMS key in a different Amazon Web Services account.
|
4919
|
+
# For more information about creating KMS keys with no key material and
|
4920
|
+
# then importing key material, see [Importing Key Material][2] in the
|
4921
|
+
# *Key Management Service Developer Guide*.
|
4446
4922
|
#
|
4447
4923
|
# Before using this operation, call GetParametersForImport. Its response
|
4448
4924
|
# includes a public key and an import token. Use the public key to
|
@@ -4484,8 +4960,8 @@ module Aws::KMS
|
|
4484
4960
|
# Service Developer Guide*.
|
4485
4961
|
#
|
4486
4962
|
# The KMS key that you use for this operation must be in a compatible
|
4487
|
-
# key state. For details, see [Key
|
4488
|
-
#
|
4963
|
+
# key state. For details, see [Key states of KMS keys][4] in the *Key
|
4964
|
+
# Management Service Developer Guide*.
|
4489
4965
|
#
|
4490
4966
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
4491
4967
|
# key in a different Amazon Web Services account.
|
@@ -4507,10 +4983,13 @@ module Aws::KMS
|
|
4507
4983
|
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
4508
4984
|
#
|
4509
4985
|
# @option params [required, String] :key_id
|
4510
|
-
# The identifier of the symmetric KMS key that receives the
|
4511
|
-
# material.
|
4512
|
-
#
|
4513
|
-
#
|
4986
|
+
# The identifier of the symmetric encryption KMS key that receives the
|
4987
|
+
# imported key material. This must be the same KMS key specified in the
|
4988
|
+
# `KeyID` parameter of the corresponding GetParametersForImport request.
|
4989
|
+
# The `Origin` of the KMS key must be `EXTERNAL`. You cannot perform
|
4990
|
+
# this operation on an asymmetric KMS key, an HMAC KMS key, a KMS key in
|
4991
|
+
# a custom key store, or on a KMS key in a different Amazon Web Services
|
4992
|
+
# account
|
4514
4993
|
#
|
4515
4994
|
# Specify the key ID or key ARN of the KMS key.
|
4516
4995
|
#
|
@@ -4752,7 +5231,7 @@ module Aws::KMS
|
|
4752
5231
|
# list by grant ID or grantee principal.
|
4753
5232
|
#
|
4754
5233
|
# For detailed information about grants, including grant terminology,
|
4755
|
-
# see [
|
5234
|
+
# see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
|
4756
5235
|
# Guide</i> </i>. For examples of working with grants in several
|
4757
5236
|
# programming languages, see [Programming grants][2].
|
4758
5237
|
#
|
@@ -4922,7 +5401,7 @@ module Aws::KMS
|
|
4922
5401
|
# resp.grants[0].retiring_principal #=> String
|
4923
5402
|
# resp.grants[0].issuing_account #=> String
|
4924
5403
|
# resp.grants[0].operations #=> Array
|
4925
|
-
# resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext"
|
5404
|
+
# resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac"
|
4926
5405
|
# resp.grants[0].constraints.encryption_context_subset #=> Hash
|
4927
5406
|
# resp.grants[0].constraints.encryption_context_subset["EncryptionContextKey"] #=> String
|
4928
5407
|
# resp.grants[0].constraints.encryption_context_equals #=> Hash
|
@@ -5215,6 +5694,8 @@ module Aws::KMS
|
|
5215
5694
|
# * {Types::ListResourceTagsResponse#next_marker #next_marker} => String
|
5216
5695
|
# * {Types::ListResourceTagsResponse#truncated #truncated} => Boolean
|
5217
5696
|
#
|
5697
|
+
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
|
5698
|
+
#
|
5218
5699
|
#
|
5219
5700
|
# @example Example: To list tags for a KMS key
|
5220
5701
|
#
|
@@ -5278,7 +5759,7 @@ module Aws::KMS
|
|
5278
5759
|
# a grant, use the RetireGrant operation.
|
5279
5760
|
#
|
5280
5761
|
# For detailed information about grants, including grant terminology,
|
5281
|
-
# see [
|
5762
|
+
# see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
|
5282
5763
|
# Guide</i> </i>. For examples of working with grants in several
|
5283
5764
|
# programming languages, see [Programming grants][2].
|
5284
5765
|
#
|
@@ -5343,6 +5824,8 @@ module Aws::KMS
|
|
5343
5824
|
# * {Types::ListGrantsResponse#next_marker #next_marker} => String
|
5344
5825
|
# * {Types::ListGrantsResponse#truncated #truncated} => Boolean
|
5345
5826
|
#
|
5827
|
+
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
|
5828
|
+
#
|
5346
5829
|
#
|
5347
5830
|
# @example Example: To list grants that the specified principal can retire
|
5348
5831
|
#
|
@@ -5390,7 +5873,7 @@ module Aws::KMS
|
|
5390
5873
|
# resp.grants[0].retiring_principal #=> String
|
5391
5874
|
# resp.grants[0].issuing_account #=> String
|
5392
5875
|
# resp.grants[0].operations #=> Array
|
5393
|
-
# resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext"
|
5876
|
+
# resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac"
|
5394
5877
|
# resp.grants[0].constraints.encryption_context_subset #=> Hash
|
5395
5878
|
# resp.grants[0].constraints.encryption_context_subset["EncryptionContextKey"] #=> String
|
5396
5879
|
# resp.grants[0].constraints.encryption_context_equals #=> Hash
|
@@ -5471,15 +5954,29 @@ module Aws::KMS
|
|
5471
5954
|
# visible][2] in the *Amazon Web Services Identity and Access
|
5472
5955
|
# Management User Guide*.
|
5473
5956
|
#
|
5474
|
-
#
|
5475
|
-
#
|
5476
|
-
#
|
5957
|
+
# A key policy document can include only the following characters:
|
5958
|
+
#
|
5959
|
+
# * Printable ASCII characters from the space character (`\u0020`)
|
5960
|
+
# through the end of the ASCII character range.
|
5961
|
+
#
|
5962
|
+
# * Printable characters in the Basic Latin and Latin-1 Supplement
|
5963
|
+
# character set (through `\u00FF`).
|
5964
|
+
#
|
5965
|
+
# * The tab (`\u0009`), line feed (`\u000A`), and carriage return
|
5966
|
+
# (`\u000D`) special characters
|
5967
|
+
#
|
5968
|
+
# For information about key policies, see [Key policies in KMS][3] in
|
5969
|
+
# the *Key Management Service Developer Guide*. For help writing and
|
5970
|
+
# formatting a JSON policy document, see the [IAM JSON Policy
|
5971
|
+
# Reference][4] in the <i> <i>Identity and Access Management User
|
5972
|
+
# Guide</i> </i>.
|
5477
5973
|
#
|
5478
5974
|
#
|
5479
5975
|
#
|
5480
5976
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
|
5481
5977
|
# [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
|
5482
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
5978
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
|
5979
|
+
# [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
|
5483
5980
|
#
|
5484
5981
|
# @option params [Boolean] :bypass_policy_lockout_safety_check
|
5485
5982
|
# A flag to indicate whether to bypass the key policy lockout safety
|
@@ -5540,7 +6037,7 @@ module Aws::KMS
|
|
5540
6037
|
# [encryption context][2] of a ciphertext.
|
5541
6038
|
#
|
5542
6039
|
# The `ReEncrypt` operation can decrypt ciphertext that was encrypted by
|
5543
|
-
# using
|
6040
|
+
# using a KMS key in an KMS operation, such as Encrypt or
|
5544
6041
|
# GenerateDataKey. It can also decrypt ciphertext that was encrypted by
|
5545
6042
|
# using the public key of an [asymmetric KMS key][3] outside of KMS.
|
5546
6043
|
# However, it cannot decrypt ciphertext produced by other libraries,
|
@@ -5558,25 +6055,24 @@ module Aws::KMS
|
|
5558
6055
|
# algorithm that was used. This information is required to decrypt the
|
5559
6056
|
# data.
|
5560
6057
|
#
|
5561
|
-
# * If your ciphertext was encrypted under a symmetric KMS
|
5562
|
-
# `SourceKeyId` parameter is optional. KMS can get this
|
5563
|
-
# from metadata that it adds to the symmetric ciphertext
|
5564
|
-
# feature adds durability to your implementation by
|
5565
|
-
# authorized users can decrypt ciphertext decades after
|
5566
|
-
# encrypted, even if they've lost track of the key ID.
|
5567
|
-
# specifying the source KMS key is always recommended as a
|
5568
|
-
# practice. When you use the `SourceKeyId` parameter to specify a
|
5569
|
-
# key, KMS uses only the KMS key you specify. If the ciphertext
|
5570
|
-
# encrypted under a different KMS key, the `ReEncrypt` operation
|
6058
|
+
# * If your ciphertext was encrypted under a symmetric encryption KMS
|
6059
|
+
# key, the `SourceKeyId` parameter is optional. KMS can get this
|
6060
|
+
# information from metadata that it adds to the symmetric ciphertext
|
6061
|
+
# blob. This feature adds durability to your implementation by
|
6062
|
+
# ensuring that authorized users can decrypt ciphertext decades after
|
6063
|
+
# it was encrypted, even if they've lost track of the key ID.
|
6064
|
+
# However, specifying the source KMS key is always recommended as a
|
6065
|
+
# best practice. When you use the `SourceKeyId` parameter to specify a
|
6066
|
+
# KMS key, KMS uses only the KMS key you specify. If the ciphertext
|
6067
|
+
# was encrypted under a different KMS key, the `ReEncrypt` operation
|
5571
6068
|
# fails. This practice ensures that you use the KMS key that you
|
5572
6069
|
# intend.
|
5573
6070
|
#
|
5574
6071
|
# * To reencrypt the data, you must use the `DestinationKeyId` parameter
|
5575
6072
|
# specify the KMS key that re-encrypts the data after it is decrypted.
|
5576
|
-
#
|
5577
|
-
#
|
5578
|
-
#
|
5579
|
-
# compatible with the KMS key.
|
6073
|
+
# If the destination KMS key is an asymmetric KMS key, you must also
|
6074
|
+
# provide the encryption algorithm. The algorithm that you choose must
|
6075
|
+
# be compatible with the KMS key.
|
5580
6076
|
#
|
5581
6077
|
# When you use an asymmetric KMS key to encrypt or reencrypt data, be
|
5582
6078
|
# sure to record the KMS key and encryption algorithm that you choose.
|
@@ -5586,14 +6082,15 @@ module Aws::KMS
|
|
5586
6082
|
# fails.
|
5587
6083
|
#
|
5588
6084
|
# You are not required to supply the key ID and encryption algorithm
|
5589
|
-
# when you decrypt with symmetric KMS keys because KMS
|
5590
|
-
# information in the ciphertext blob. KMS cannot store
|
5591
|
-
# ciphertext generated with asymmetric keys. The standard
|
5592
|
-
# asymmetric key ciphertext does not include configurable
|
6085
|
+
# when you decrypt with symmetric encryption KMS keys because KMS
|
6086
|
+
# stores this information in the ciphertext blob. KMS cannot store
|
6087
|
+
# metadata in ciphertext generated with asymmetric keys. The standard
|
6088
|
+
# format for asymmetric key ciphertext does not include configurable
|
6089
|
+
# fields.
|
5593
6090
|
#
|
5594
6091
|
# The KMS key that you use for this operation must be in a compatible
|
5595
|
-
# key state. For details, see [Key
|
5596
|
-
#
|
6092
|
+
# key state. For details, see [Key states of KMS keys][6] in the *Key
|
6093
|
+
# Management Service Developer Guide*.
|
5597
6094
|
#
|
5598
6095
|
# **Cross-account use**\: Yes. The source KMS key and destination KMS
|
5599
6096
|
# key can be in different Amazon Web Services accounts. Either or both
|
@@ -5644,13 +6141,14 @@ module Aws::KMS
|
|
5644
6141
|
# ciphertext.
|
5645
6142
|
#
|
5646
6143
|
# An *encryption context* is a collection of non-secret key-value pairs
|
5647
|
-
# that
|
6144
|
+
# that represent additional authenticated data. When you use an
|
5648
6145
|
# encryption context to encrypt data, you must specify the same (an
|
5649
6146
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
5650
|
-
# encryption context is
|
5651
|
-
#
|
6147
|
+
# encryption context is supported only on operations with symmetric
|
6148
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
6149
|
+
# an encryption context is optional, but it is strongly recommended.
|
5652
6150
|
#
|
5653
|
-
# For more information, see [Encryption
|
6151
|
+
# For more information, see [Encryption context][1] in the *Key
|
5654
6152
|
# Management Service Developer Guide*.
|
5655
6153
|
#
|
5656
6154
|
#
|
@@ -5659,14 +6157,18 @@ module Aws::KMS
|
|
5659
6157
|
#
|
5660
6158
|
# @option params [String] :source_key_id
|
5661
6159
|
# Specifies the KMS key that KMS will use to decrypt the ciphertext
|
5662
|
-
# before it is re-encrypted.
|
5663
|
-
#
|
6160
|
+
# before it is re-encrypted.
|
6161
|
+
#
|
6162
|
+
# Enter a key ID of the KMS key that was used to encrypt the ciphertext.
|
6163
|
+
# If you identify a different KMS key, the `ReEncrypt` operation throws
|
6164
|
+
# an `IncorrectKeyException`.
|
5664
6165
|
#
|
5665
6166
|
# This parameter is required only when the ciphertext was encrypted
|
5666
|
-
# under an asymmetric KMS key. If you used a symmetric
|
5667
|
-
# get the KMS key from metadata that it adds to the
|
5668
|
-
# blob. However, it is always recommended as a best
|
5669
|
-
# practice ensures that you use the KMS key that you
|
6167
|
+
# under an asymmetric KMS key. If you used a symmetric encryption KMS
|
6168
|
+
# key, KMS can get the KMS key from metadata that it adds to the
|
6169
|
+
# symmetric ciphertext blob. However, it is always recommended as a best
|
6170
|
+
# practice. This practice ensures that you use the KMS key that you
|
6171
|
+
# intend.
|
5670
6172
|
#
|
5671
6173
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
5672
6174
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -5689,9 +6191,9 @@ module Aws::KMS
|
|
5689
6191
|
#
|
5690
6192
|
# @option params [required, String] :destination_key_id
|
5691
6193
|
# A unique identifier for the KMS key that is used to reencrypt the
|
5692
|
-
# data. Specify a symmetric or asymmetric KMS key
|
5693
|
-
# value of `ENCRYPT_DECRYPT`. To find the `KeyUsage`
|
5694
|
-
# use the DescribeKey operation.
|
6194
|
+
# data. Specify a symmetric encryption KMS key or an asymmetric KMS key
|
6195
|
+
# with a `KeyUsage` value of `ENCRYPT_DECRYPT`. To find the `KeyUsage`
|
6196
|
+
# value of a KMS key, use the DescribeKey operation.
|
5695
6197
|
#
|
5696
6198
|
# To specify a KMS key, use its key ID, key ARN, alias name, or alias
|
5697
6199
|
# ARN. When using an alias name, prefix it with `"alias/"`. To specify a
|
@@ -5717,17 +6219,18 @@ module Aws::KMS
|
|
5717
6219
|
# data.
|
5718
6220
|
#
|
5719
6221
|
# A destination encryption context is valid only when the destination
|
5720
|
-
# KMS key is a symmetric KMS key. The standard ciphertext
|
5721
|
-
# asymmetric KMS keys does not include fields for metadata.
|
6222
|
+
# KMS key is a symmetric encryption KMS key. The standard ciphertext
|
6223
|
+
# format for asymmetric KMS keys does not include fields for metadata.
|
5722
6224
|
#
|
5723
6225
|
# An *encryption context* is a collection of non-secret key-value pairs
|
5724
|
-
# that
|
6226
|
+
# that represent additional authenticated data. When you use an
|
5725
6227
|
# encryption context to encrypt data, you must specify the same (an
|
5726
6228
|
# exact case-sensitive match) encryption context to decrypt the data. An
|
5727
|
-
# encryption context is
|
5728
|
-
#
|
6229
|
+
# encryption context is supported only on operations with symmetric
|
6230
|
+
# encryption KMS keys. On operations with symmetric encryption KMS keys,
|
6231
|
+
# an encryption context is optional, but it is strongly recommended.
|
5729
6232
|
#
|
5730
|
-
# For more information, see [Encryption
|
6233
|
+
# For more information, see [Encryption context][1] in the *Key
|
5731
6234
|
# Management Service Developer Guide*.
|
5732
6235
|
#
|
5733
6236
|
#
|
@@ -5737,8 +6240,8 @@ module Aws::KMS
|
|
5737
6240
|
# @option params [String] :source_encryption_algorithm
|
5738
6241
|
# Specifies the encryption algorithm that KMS will use to decrypt the
|
5739
6242
|
# ciphertext before it is reencrypted. The default value,
|
5740
|
-
# `SYMMETRIC_DEFAULT`, represents the algorithm used for symmetric
|
5741
|
-
# keys.
|
6243
|
+
# `SYMMETRIC_DEFAULT`, represents the algorithm used for symmetric
|
6244
|
+
# encryption KMS keys.
|
5742
6245
|
#
|
5743
6246
|
# Specify the same algorithm that was used to encrypt the ciphertext. If
|
5744
6247
|
# you specify a different algorithm, the decrypt attempt fails.
|
@@ -5750,7 +6253,7 @@ module Aws::KMS
|
|
5750
6253
|
# Specifies the encryption algorithm that KMS will use to reecrypt the
|
5751
6254
|
# data after it has decrypted it. The default value,
|
5752
6255
|
# `SYMMETRIC_DEFAULT`, represents the encryption algorithm used for
|
5753
|
-
# symmetric KMS keys.
|
6256
|
+
# symmetric encryption KMS keys.
|
5754
6257
|
#
|
5755
6258
|
# This parameter is required only when the destination KMS key is an
|
5756
6259
|
# asymmetric KMS key.
|
@@ -5805,8 +6308,8 @@ module Aws::KMS
|
|
5805
6308
|
# destination_encryption_context: {
|
5806
6309
|
# "EncryptionContextKey" => "EncryptionContextValue",
|
5807
6310
|
# },
|
5808
|
-
# source_encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256
|
5809
|
-
# destination_encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256
|
6311
|
+
# source_encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, SM2PKE
|
6312
|
+
# destination_encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, SM2PKE
|
5810
6313
|
# grant_tokens: ["GrantTokenType"],
|
5811
6314
|
# })
|
5812
6315
|
#
|
@@ -5815,8 +6318,8 @@ module Aws::KMS
|
|
5815
6318
|
# resp.ciphertext_blob #=> String
|
5816
6319
|
# resp.source_key_id #=> String
|
5817
6320
|
# resp.key_id #=> String
|
5818
|
-
# resp.source_encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
5819
|
-
# resp.destination_encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
6321
|
+
# resp.source_encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
|
6322
|
+
# resp.destination_encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
|
5820
6323
|
#
|
5821
6324
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncrypt AWS API Documentation
|
5822
6325
|
#
|
@@ -5841,7 +6344,7 @@ module Aws::KMS
|
|
5841
6344
|
# encrypt data in one Amazon Web Services Region and decrypt it in a
|
5842
6345
|
# different Amazon Web Services Region without re-encrypting the data or
|
5843
6346
|
# making a cross-Region call. For more information about multi-Region
|
5844
|
-
# keys, see [
|
6347
|
+
# keys, see [Multi-Region keys in KMS][1] in the *Key Management Service
|
5845
6348
|
# Developer Guide*.
|
5846
6349
|
#
|
5847
6350
|
# A *replica key* is a fully-functional KMS key that can be used
|
@@ -5852,8 +6355,8 @@ module Aws::KMS
|
|
5852
6355
|
# [automatic key rotation status][6]. KMS automatically synchronizes
|
5853
6356
|
# these shared properties among related multi-Region keys. All other
|
5854
6357
|
# properties of a replica key can differ, including its [key policy][7],
|
5855
|
-
# [tags][8], [aliases][9], and [
|
5856
|
-
# for KMS keys apply to each primary key and replica key.
|
6358
|
+
# [tags][8], [aliases][9], and [Key states of KMS keys][10]. KMS pricing
|
6359
|
+
# and quotas for KMS keys apply to each primary key and replica key.
|
5857
6360
|
#
|
5858
6361
|
# When this operation completes, the new replica key has a transient key
|
5859
6362
|
# state of `Creating`. This key state changes to `Enabled` (or
|
@@ -5863,9 +6366,17 @@ module Aws::KMS
|
|
5863
6366
|
# If you are creating and using the replica key programmatically, retry
|
5864
6367
|
# on `KMSInvalidStateException` or call `DescribeKey` to check its
|
5865
6368
|
# `KeyState` value before using it. For details about the `Creating` key
|
5866
|
-
# state, see [Key
|
5867
|
-
#
|
5868
|
-
#
|
6369
|
+
# state, see [Key states of KMS keys][10] in the *Key Management Service
|
6370
|
+
# Developer Guide*.
|
6371
|
+
#
|
6372
|
+
# You cannot create more than one replica of a primary key in any
|
6373
|
+
# Region. If the Region already includes a replica of the key you're
|
6374
|
+
# trying to replicate, `ReplicateKey` returns an
|
6375
|
+
# `AlreadyExistsException` error. If the key state of the existing
|
6376
|
+
# replica is `PendingDeletion`, you can cancel the scheduled key
|
6377
|
+
# deletion (CancelKeyDeletion) or wait for the key to be deleted. The
|
6378
|
+
# new replica key you create will have the same [shared properties][11]
|
6379
|
+
# as the original replica key.
|
5869
6380
|
#
|
5870
6381
|
# The CloudTrail log of a `ReplicateKey` operation records a
|
5871
6382
|
# `ReplicateKey` operation in the primary key's Region and a CreateKey
|
@@ -5918,6 +6429,7 @@ module Aws::KMS
|
|
5918
6429
|
# [8]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
|
5919
6430
|
# [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html
|
5920
6431
|
# [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
6432
|
+
# [11]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-sync-properties
|
5921
6433
|
#
|
5922
6434
|
# @option params [required, String] :key_id
|
5923
6435
|
# Identifies the multi-Region primary key that is being replicated. To
|
@@ -5945,24 +6457,33 @@ module Aws::KMS
|
|
5945
6457
|
# [KMS service endpoints][1] in the *Amazon Web Services General
|
5946
6458
|
# Reference*.
|
5947
6459
|
#
|
6460
|
+
# <note markdown="1"> HMAC KMS keys are not supported in all Amazon Web Services Regions. If
|
6461
|
+
# you try to replicate an HMAC KMS key in an Amazon Web Services Region
|
6462
|
+
# in which HMAC keys are not supported, the `ReplicateKey` operation
|
6463
|
+
# returns an `UnsupportedOperationException`. For a list of Regions in
|
6464
|
+
# which HMAC KMS keys are supported, see [HMAC keys in KMS][2] in the
|
6465
|
+
# *Key Management Service Developer Guide*.
|
6466
|
+
#
|
6467
|
+
# </note>
|
6468
|
+
#
|
5948
6469
|
# The replica must be in a different Amazon Web Services Region than its
|
5949
6470
|
# primary key and other replicas of that primary key, but in the same
|
5950
6471
|
# Amazon Web Services partition. KMS must be available in the replica
|
5951
6472
|
# Region. If the Region is not enabled by default, the Amazon Web
|
5952
|
-
# Services account must be enabled in the Region.
|
5953
|
-
#
|
5954
|
-
#
|
5955
|
-
#
|
5956
|
-
#
|
5957
|
-
#
|
5958
|
-
# Web Services General Reference*.
|
6473
|
+
# Services account must be enabled in the Region. For information about
|
6474
|
+
# Amazon Web Services partitions, see [Amazon Resource Names (ARNs)][3]
|
6475
|
+
# in the *Amazon Web Services General Reference*. For information about
|
6476
|
+
# enabling and disabling Regions, see [Enabling a Region][4] and
|
6477
|
+
# [Disabling a Region][5] in the *Amazon Web Services General
|
6478
|
+
# Reference*.
|
5959
6479
|
#
|
5960
6480
|
#
|
5961
6481
|
#
|
5962
6482
|
# [1]: https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region
|
5963
|
-
# [2]: https://docs.aws.amazon.com/
|
5964
|
-
# [3]: https://docs.aws.amazon.com/general/latest/gr/
|
5965
|
-
# [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-
|
6483
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
6484
|
+
# [3]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
|
6485
|
+
# [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
|
6486
|
+
# [5]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
|
5966
6487
|
#
|
5967
6488
|
# @option params [String] :policy
|
5968
6489
|
# The key policy to attach to the KMS key. This parameter is optional.
|
@@ -5993,13 +6514,30 @@ module Aws::KMS
|
|
5993
6514
|
# visible][3] in the <i> <i>Identity and Access Management User
|
5994
6515
|
# Guide</i> </i>.
|
5995
6516
|
#
|
5996
|
-
#
|
6517
|
+
# A key policy document can include only the following characters:
|
6518
|
+
#
|
6519
|
+
# * Printable ASCII characters from the space character (`\u0020`)
|
6520
|
+
# through the end of the ASCII character range.
|
6521
|
+
#
|
6522
|
+
# * Printable characters in the Basic Latin and Latin-1 Supplement
|
6523
|
+
# character set (through `\u00FF`).
|
6524
|
+
#
|
6525
|
+
# * The tab (`\u0009`), line feed (`\u000A`), and carriage return
|
6526
|
+
# (`\u000D`) special characters
|
6527
|
+
#
|
6528
|
+
# For information about key policies, see [Key policies in KMS][4] in
|
6529
|
+
# the *Key Management Service Developer Guide*. For help writing and
|
6530
|
+
# formatting a JSON policy document, see the [IAM JSON Policy
|
6531
|
+
# Reference][5] in the <i> <i>Identity and Access Management User
|
6532
|
+
# Guide</i> </i>.
|
5997
6533
|
#
|
5998
6534
|
#
|
5999
6535
|
#
|
6000
6536
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
|
6001
6537
|
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
|
6002
6538
|
# [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
|
6539
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
|
6540
|
+
# [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
|
6003
6541
|
#
|
6004
6542
|
# @option params [Boolean] :bypass_policy_lockout_safety_check
|
6005
6543
|
# A flag to indicate whether to bypass the key policy lockout safety
|
@@ -6036,8 +6574,8 @@ module Aws::KMS
|
|
6036
6574
|
# TagResource operation.
|
6037
6575
|
#
|
6038
6576
|
# <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
|
6039
|
-
# key. For details, see [
|
6040
|
-
#
|
6577
|
+
# key. For details, see [ABAC in KMS][1] in the *Key Management Service
|
6578
|
+
# Developer Guide*.
|
6041
6579
|
#
|
6042
6580
|
# </note>
|
6043
6581
|
#
|
@@ -6142,7 +6680,7 @@ module Aws::KMS
|
|
6142
6680
|
# resp.replica_key_metadata.creation_date #=> Time
|
6143
6681
|
# resp.replica_key_metadata.enabled #=> Boolean
|
6144
6682
|
# resp.replica_key_metadata.description #=> String
|
6145
|
-
# resp.replica_key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT"
|
6683
|
+
# resp.replica_key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC"
|
6146
6684
|
# resp.replica_key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating"
|
6147
6685
|
# resp.replica_key_metadata.deletion_date #=> Time
|
6148
6686
|
# resp.replica_key_metadata.valid_to #=> Time
|
@@ -6151,12 +6689,12 @@ module Aws::KMS
|
|
6151
6689
|
# resp.replica_key_metadata.cloud_hsm_cluster_id #=> String
|
6152
6690
|
# resp.replica_key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
|
6153
6691
|
# resp.replica_key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
|
6154
|
-
# 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"
|
6155
|
-
# 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"
|
6692
|
+
# 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", "SM2"
|
6693
|
+
# 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", "SM2"
|
6156
6694
|
# resp.replica_key_metadata.encryption_algorithms #=> Array
|
6157
|
-
# resp.replica_key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256"
|
6695
|
+
# resp.replica_key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
|
6158
6696
|
# resp.replica_key_metadata.signing_algorithms #=> Array
|
6159
|
-
# resp.replica_key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512"
|
6697
|
+
# resp.replica_key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
|
6160
6698
|
# resp.replica_key_metadata.multi_region #=> Boolean
|
6161
6699
|
# resp.replica_key_metadata.multi_region_configuration.multi_region_key_type #=> String, one of "PRIMARY", "REPLICA"
|
6162
6700
|
# resp.replica_key_metadata.multi_region_configuration.primary_key.arn #=> String
|
@@ -6165,6 +6703,8 @@ module Aws::KMS
|
|
6165
6703
|
# resp.replica_key_metadata.multi_region_configuration.replica_keys[0].arn #=> String
|
6166
6704
|
# resp.replica_key_metadata.multi_region_configuration.replica_keys[0].region #=> String
|
6167
6705
|
# resp.replica_key_metadata.pending_deletion_window_in_days #=> Integer
|
6706
|
+
# resp.replica_key_metadata.mac_algorithms #=> Array
|
6707
|
+
# resp.replica_key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
6168
6708
|
# resp.replica_policy #=> String
|
6169
6709
|
# resp.replica_tags #=> Array
|
6170
6710
|
# resp.replica_tags[0].tag_key #=> String
|
@@ -6186,14 +6726,13 @@ module Aws::KMS
|
|
6186
6726
|
#
|
6187
6727
|
# This operation can be called by the *retiring principal* for a grant,
|
6188
6728
|
# by the *grantee principal* if the grant allows the `RetireGrant`
|
6189
|
-
# operation, and by the Amazon Web Services account
|
6190
|
-
#
|
6191
|
-
#
|
6192
|
-
#
|
6193
|
-
# Developer Guide*.
|
6729
|
+
# operation, and by the Amazon Web Services account in which the grant
|
6730
|
+
# is created. It can also be called by principals to whom permission for
|
6731
|
+
# retiring a grant is delegated. For details, see [Retiring and revoking
|
6732
|
+
# grants][2] in the *Key Management Service Developer Guide*.
|
6194
6733
|
#
|
6195
6734
|
# For detailed information about grants, including grant terminology,
|
6196
|
-
# see [
|
6735
|
+
# see [Grants in KMS][3] in the <i> <i>Key Management Service Developer
|
6197
6736
|
# Guide</i> </i>. For examples of working with grants in several
|
6198
6737
|
# programming languages, see [Programming grants][4].
|
6199
6738
|
#
|
@@ -6291,7 +6830,7 @@ module Aws::KMS
|
|
6291
6830
|
# Service Developer Guide</i> </i>.
|
6292
6831
|
#
|
6293
6832
|
# For detailed information about grants, including grant terminology,
|
6294
|
-
# see [
|
6833
|
+
# see [Grants in KMS][3] in the <i> <i>Key Management Service Developer
|
6295
6834
|
# Guide</i> </i>. For examples of working with grants in several
|
6296
6835
|
# programming languages, see [Programming grants][4].
|
6297
6836
|
#
|
@@ -6408,8 +6947,8 @@ module Aws::KMS
|
|
6408
6947
|
# Guide*.
|
6409
6948
|
#
|
6410
6949
|
# The KMS key that you use for this operation must be in a compatible
|
6411
|
-
# key state. For details, see [Key
|
6412
|
-
#
|
6950
|
+
# key state. For details, see [Key states of KMS keys][5] in the *Key
|
6951
|
+
# Management Service Developer Guide*.
|
6413
6952
|
#
|
6414
6953
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
6415
6954
|
# key in a different Amazon Web Services account.
|
@@ -6449,7 +6988,7 @@ module Aws::KMS
|
|
6449
6988
|
# The waiting period, specified in number of days. After the waiting
|
6450
6989
|
# period ends, KMS deletes the KMS key.
|
6451
6990
|
#
|
6452
|
-
# If the KMS key is a multi-Region primary key with
|
6991
|
+
# If the KMS key is a multi-Region primary key with replica keys, the
|
6453
6992
|
# waiting period begins when the last of its replica keys is deleted.
|
6454
6993
|
# Otherwise, the waiting period begins immediately.
|
6455
6994
|
#
|
@@ -6503,11 +7042,11 @@ module Aws::KMS
|
|
6503
7042
|
end
|
6504
7043
|
|
6505
7044
|
# Creates a [digital signature][1] for a message or message digest by
|
6506
|
-
# using the private key in an asymmetric KMS key. To verify the
|
7045
|
+
# using the private key in an asymmetric signing KMS key. To verify the
|
6507
7046
|
# signature, use the Verify operation, or use the public key in the same
|
6508
|
-
# asymmetric KMS key outside of KMS. For information about
|
6509
|
-
#
|
6510
|
-
#
|
7047
|
+
# asymmetric KMS key outside of KMS. For information about asymmetric
|
7048
|
+
# KMS keys, see [Asymmetric KMS keys][2] in the *Key Management Service
|
7049
|
+
# Developer Guide*.
|
6511
7050
|
#
|
6512
7051
|
# Digital signatures are generated and verified by using asymmetric key
|
6513
7052
|
# pair, such as an RSA or ECC pair that is represented by an asymmetric
|
@@ -6535,14 +7074,23 @@ module Aws::KMS
|
|
6535
7074
|
# When signing a message, be sure to record the KMS key and the signing
|
6536
7075
|
# algorithm. This information is required to verify the signature.
|
6537
7076
|
#
|
7077
|
+
# <note markdown="1"> Best practices recommend that you limit the time during which any
|
7078
|
+
# signature is effective. This deters an attack where the actor uses a
|
7079
|
+
# signed message to establish validity repeatedly or long after the
|
7080
|
+
# message is superseded. Signatures do not include a timestamp, but you
|
7081
|
+
# can include a timestamp in the signed message to help you detect when
|
7082
|
+
# its time to refresh the signature.
|
7083
|
+
#
|
7084
|
+
# </note>
|
7085
|
+
#
|
6538
7086
|
# To verify the signature that this operation generates, use the Verify
|
6539
7087
|
# operation. Or use the GetPublicKey operation to download the public
|
6540
7088
|
# key and then use the public key to verify the signature outside of
|
6541
7089
|
# KMS.
|
6542
7090
|
#
|
6543
7091
|
# The KMS key that you use for this operation must be in a compatible
|
6544
|
-
# key state. For details, see [Key
|
6545
|
-
#
|
7092
|
+
# key state. For details, see [Key states of KMS keys][3] in the *Key
|
7093
|
+
# Management Service Developer Guide*.
|
6546
7094
|
#
|
6547
7095
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
6548
7096
|
# in a different Amazon Web Services account, specify the key ARN or
|
@@ -6648,14 +7196,14 @@ module Aws::KMS
|
|
6648
7196
|
# message: "data", # required
|
6649
7197
|
# message_type: "RAW", # accepts RAW, DIGEST
|
6650
7198
|
# grant_tokens: ["GrantTokenType"],
|
6651
|
-
# signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512
|
7199
|
+
# signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA
|
6652
7200
|
# })
|
6653
7201
|
#
|
6654
7202
|
# @example Response structure
|
6655
7203
|
#
|
6656
7204
|
# resp.key_id #=> String
|
6657
7205
|
# resp.signature #=> String
|
6658
|
-
# resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512"
|
7206
|
+
# resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
|
6659
7207
|
#
|
6660
7208
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Sign AWS API Documentation
|
6661
7209
|
#
|
@@ -6669,8 +7217,8 @@ module Aws::KMS
|
|
6669
7217
|
# Adds or edits tags on a [customer managed key][1].
|
6670
7218
|
#
|
6671
7219
|
# <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
|
6672
|
-
# key. For details, see [
|
6673
|
-
#
|
7220
|
+
# key. For details, see [ABAC in KMS][2] in the *Key Management Service
|
7221
|
+
# Developer Guide*.
|
6674
7222
|
#
|
6675
7223
|
# </note>
|
6676
7224
|
#
|
@@ -6692,8 +7240,8 @@ module Aws::KMS
|
|
6692
7240
|
# General Reference*.
|
6693
7241
|
#
|
6694
7242
|
# The KMS key that you use for this operation must be in a compatible
|
6695
|
-
# key state. For details, see [Key
|
6696
|
-
#
|
7243
|
+
# key state. For details, see [Key states of KMS keys][9] in the *Key
|
7244
|
+
# Management Service Developer Guide*.
|
6697
7245
|
#
|
6698
7246
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
6699
7247
|
# key in a different Amazon Web Services account.
|
@@ -6790,8 +7338,8 @@ module Aws::KMS
|
|
6790
7338
|
# specify the tag key and the KMS key.
|
6791
7339
|
#
|
6792
7340
|
# <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
|
6793
|
-
# key. For details, see [
|
6794
|
-
#
|
7341
|
+
# key. For details, see [ABAC in KMS][2] in the *Key Management Service
|
7342
|
+
# Developer Guide*.
|
6795
7343
|
#
|
6796
7344
|
# </note>
|
6797
7345
|
#
|
@@ -6806,8 +7354,8 @@ module Aws::KMS
|
|
6806
7354
|
# General Reference*.
|
6807
7355
|
#
|
6808
7356
|
# The KMS key that you use for this operation must be in a compatible
|
6809
|
-
# key state. For details, see [Key
|
6810
|
-
#
|
7357
|
+
# key state. For details, see [Key states of KMS keys][5] in the *Key
|
7358
|
+
# Management Service Developer Guide*.
|
6811
7359
|
#
|
6812
7360
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
6813
7361
|
# key in a different Amazon Web Services account.
|
@@ -6888,8 +7436,8 @@ module Aws::KMS
|
|
6888
7436
|
# Amazon Web Services account and Region.
|
6889
7437
|
#
|
6890
7438
|
# <note markdown="1"> Adding, deleting, or updating an alias can allow or deny permission to
|
6891
|
-
# the KMS key. For details, see [
|
6892
|
-
#
|
7439
|
+
# the KMS key. For details, see [ABAC in KMS][1] in the *Key Management
|
7440
|
+
# Service Developer Guide*.
|
6893
7441
|
#
|
6894
7442
|
# </note>
|
6895
7443
|
#
|
@@ -6911,8 +7459,8 @@ module Aws::KMS
|
|
6911
7459
|
# ListAliases operation.
|
6912
7460
|
#
|
6913
7461
|
# The KMS key that you use for this operation must be in a compatible
|
6914
|
-
# key state. For details, see [Key
|
6915
|
-
#
|
7462
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
7463
|
+
# Management Service Developer Guide*.
|
6916
7464
|
#
|
6917
7465
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
6918
7466
|
# key in a different Amazon Web Services account.
|
@@ -6946,7 +7494,7 @@ module Aws::KMS
|
|
6946
7494
|
# @option params [required, String] :alias_name
|
6947
7495
|
# Identifies the alias that is changing its KMS key. This value must
|
6948
7496
|
# begin with `alias/` followed by the alias name, such as
|
6949
|
-
# `alias/ExampleAlias`. You cannot use UpdateAlias to change the alias
|
7497
|
+
# `alias/ExampleAlias`. You cannot use `UpdateAlias` to change the alias
|
6950
7498
|
# name.
|
6951
7499
|
#
|
6952
7500
|
# @option params [required, String] :target_key_id
|
@@ -7045,7 +7593,7 @@ module Aws::KMS
|
|
7045
7593
|
# If the operation succeeds, it returns a JSON object with no
|
7046
7594
|
# properties.
|
7047
7595
|
#
|
7048
|
-
# This operation is part of the [
|
7596
|
+
# This operation is part of the [custom key store feature][3] feature in
|
7049
7597
|
# KMS, which combines the convenience and extensive integration of KMS
|
7050
7598
|
# with the isolation and control of a single-tenant key store.
|
7051
7599
|
#
|
@@ -7177,8 +7725,8 @@ module Aws::KMS
|
|
7177
7725
|
# key, use DescribeKey.
|
7178
7726
|
#
|
7179
7727
|
# The KMS key that you use for this operation must be in a compatible
|
7180
|
-
# key state. For details, see [Key
|
7181
|
-
#
|
7728
|
+
# key state. For details, see [Key states of KMS keys][1] in the *Key
|
7729
|
+
# Management Service Developer Guide*.
|
7182
7730
|
#
|
7183
7731
|
# **Cross-account use**\: No. You cannot perform this operation on a KMS
|
7184
7732
|
# key in a different Amazon Web Services account.
|
@@ -7260,7 +7808,7 @@ module Aws::KMS
|
|
7260
7808
|
# encrypt data in one Amazon Web Services Region and decrypt it in a
|
7261
7809
|
# different Amazon Web Services Region without re-encrypting the data or
|
7262
7810
|
# making a cross-Region call. For more information about multi-Region
|
7263
|
-
# keys, see [
|
7811
|
+
# keys, see [Multi-Region keys in KMS][2] in the *Key Management Service
|
7264
7812
|
# Developer Guide*.
|
7265
7813
|
#
|
7266
7814
|
# The *primary key* of a multi-Region key is the source for properties
|
@@ -7290,9 +7838,8 @@ module Aws::KMS
|
|
7290
7838
|
# can use the keys in cryptographic operations, but you cannot replicate
|
7291
7839
|
# the new primary key or perform certain management operations, such as
|
7292
7840
|
# enabling or disabling these keys. For details about the `Updating` key
|
7293
|
-
# state, see [Key
|
7294
|
-
#
|
7295
|
-
# Service Developer Guide*.
|
7841
|
+
# state, see [Key states of KMS keys][9] in the *Key Management Service
|
7842
|
+
# Developer Guide*.
|
7296
7843
|
#
|
7297
7844
|
# This operation does not return any output. To verify that primary key
|
7298
7845
|
# is changed, use the DescribeKey operation.
|
@@ -7325,6 +7872,7 @@ module Aws::KMS
|
|
7325
7872
|
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin
|
7326
7873
|
# [7]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
|
7327
7874
|
# [8]: https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html
|
7875
|
+
# [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
7328
7876
|
#
|
7329
7877
|
# @option params [required, String] :key_id
|
7330
7878
|
# Identifies the current primary key. When the operation completes, this
|
@@ -7381,9 +7929,9 @@ module Aws::KMS
|
|
7381
7929
|
#
|
7382
7930
|
# A digital signature is generated by using the private key in an
|
7383
7931
|
# asymmetric KMS key. The signature is verified by using the public key
|
7384
|
-
# in the same asymmetric KMS key. For information about
|
7385
|
-
#
|
7386
|
-
#
|
7932
|
+
# in the same asymmetric KMS key. For information about asymmetric KMS
|
7933
|
+
# keys, see [Asymmetric KMS keys][1] in the *Key Management Service
|
7934
|
+
# Developer Guide*.
|
7387
7935
|
#
|
7388
7936
|
# To verify a digital signature, you can use the `Verify` operation.
|
7389
7937
|
# Specify the same asymmetric KMS key, message, and signing algorithm
|
@@ -7392,7 +7940,11 @@ module Aws::KMS
|
|
7392
7940
|
# You can also verify the digital signature by using the public key of
|
7393
7941
|
# the KMS key outside of KMS. Use the GetPublicKey operation to download
|
7394
7942
|
# the public key in the asymmetric KMS key and then use the public key
|
7395
|
-
# to verify the signature outside of KMS.
|
7943
|
+
# to verify the signature outside of KMS. To verify a signature outside
|
7944
|
+
# of KMS with an SM2 public key, you must specify the distinguishing ID.
|
7945
|
+
# By default, KMS uses `1234567812345678` as the distinguishing ID. For
|
7946
|
+
# more information, see [Offline verification with SM2 key pairs][2] in
|
7947
|
+
# *Key Management Service Developer Guide*. The advantage of using the
|
7396
7948
|
# `Verify` operation is that it is performed within KMS. As a result,
|
7397
7949
|
# it's easy to call, the operation is performed within the FIPS
|
7398
7950
|
# boundary, it is logged in CloudTrail, and you can use key policy and
|
@@ -7400,22 +7952,23 @@ module Aws::KMS
|
|
7400
7952
|
# signatures.
|
7401
7953
|
#
|
7402
7954
|
# The KMS key that you use for this operation must be in a compatible
|
7403
|
-
# key state. For details, see [Key
|
7404
|
-
#
|
7955
|
+
# key state. For details, see [Key states of KMS keys][3] in the *Key
|
7956
|
+
# Management Service Developer Guide*.
|
7405
7957
|
#
|
7406
7958
|
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
7407
7959
|
# in a different Amazon Web Services account, specify the key ARN or
|
7408
7960
|
# alias ARN in the value of the `KeyId` parameter.
|
7409
7961
|
#
|
7410
|
-
# **Required permissions**\: [kms:Verify][
|
7962
|
+
# **Required permissions**\: [kms:Verify][4] (key policy)
|
7411
7963
|
#
|
7412
7964
|
# **Related operations**\: Sign
|
7413
7965
|
#
|
7414
7966
|
#
|
7415
7967
|
#
|
7416
7968
|
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
7417
|
-
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-
|
7418
|
-
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/
|
7969
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
|
7970
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
7971
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
7419
7972
|
#
|
7420
7973
|
# @option params [required, String] :key_id
|
7421
7974
|
# Identifies the asymmetric KMS key that will be used to verify the
|
@@ -7503,7 +8056,7 @@ module Aws::KMS
|
|
7503
8056
|
# resp.to_h outputs the following:
|
7504
8057
|
# {
|
7505
8058
|
# 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.
|
7506
|
-
# signature_valid: true, # Indicates
|
8059
|
+
# signature_valid: true, # A value of 'true' Indicates that the signature was verified. If verification fails, the call to Verify fails.
|
7507
8060
|
# signing_algorithm: "ECDSA_SHA_384", # The signing algorithm that was used to verify the signature.
|
7508
8061
|
# }
|
7509
8062
|
#
|
@@ -7514,7 +8067,7 @@ module Aws::KMS
|
|
7514
8067
|
# message: "data", # required
|
7515
8068
|
# message_type: "RAW", # accepts RAW, DIGEST
|
7516
8069
|
# signature: "data", # required
|
7517
|
-
# signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512
|
8070
|
+
# signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA
|
7518
8071
|
# grant_tokens: ["GrantTokenType"],
|
7519
8072
|
# })
|
7520
8073
|
#
|
@@ -7522,7 +8075,7 @@ module Aws::KMS
|
|
7522
8075
|
#
|
7523
8076
|
# resp.key_id #=> String
|
7524
8077
|
# resp.signature_valid #=> Boolean
|
7525
|
-
# resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512"
|
8078
|
+
# resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
|
7526
8079
|
#
|
7527
8080
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Verify AWS API Documentation
|
7528
8081
|
#
|
@@ -7533,6 +8086,128 @@ module Aws::KMS
|
|
7533
8086
|
req.send_request(options)
|
7534
8087
|
end
|
7535
8088
|
|
8089
|
+
# Verifies the hash-based message authentication code (HMAC) for a
|
8090
|
+
# specified message, HMAC KMS key, and MAC algorithm. To verify the
|
8091
|
+
# HMAC, `VerifyMac` computes an HMAC using the message, HMAC KMS key,
|
8092
|
+
# and MAC algorithm that you specify, and compares the computed HMAC to
|
8093
|
+
# the HMAC that you specify. If the HMACs are identical, the
|
8094
|
+
# verification succeeds; otherwise, it fails.
|
8095
|
+
#
|
8096
|
+
# Verification indicates that the message hasn't changed since the HMAC
|
8097
|
+
# was calculated, and the specified key was used to generate and verify
|
8098
|
+
# the HMAC.
|
8099
|
+
#
|
8100
|
+
# This operation is part of KMS support for HMAC KMS keys. For details,
|
8101
|
+
# see [HMAC keys in KMS][1] in the *Key Management Service Developer
|
8102
|
+
# Guide*.
|
8103
|
+
#
|
8104
|
+
# The KMS key that you use for this operation must be in a compatible
|
8105
|
+
# key state. For details, see [Key states of KMS keys][2] in the *Key
|
8106
|
+
# Management Service Developer Guide*.
|
8107
|
+
#
|
8108
|
+
# **Cross-account use**\: Yes. To perform this operation with a KMS key
|
8109
|
+
# in a different Amazon Web Services account, specify the key ARN or
|
8110
|
+
# alias ARN in the value of the `KeyId` parameter.
|
8111
|
+
#
|
8112
|
+
# **Required permissions**\: [kms:VerifyMac][3] (key policy)
|
8113
|
+
#
|
8114
|
+
# **Related operations**\: GenerateMac
|
8115
|
+
#
|
8116
|
+
#
|
8117
|
+
#
|
8118
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
|
8119
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
|
8120
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
|
8121
|
+
#
|
8122
|
+
# @option params [required, String, StringIO, File] :message
|
8123
|
+
# The message that will be used in the verification. Enter the same
|
8124
|
+
# message that was used to generate the HMAC.
|
8125
|
+
#
|
8126
|
+
# GenerateMac and `VerifyMac` do not provide special handling for
|
8127
|
+
# message digests. If you generated an HMAC for a hash digest of a
|
8128
|
+
# message, you must verify the HMAC for the same hash digest.
|
8129
|
+
#
|
8130
|
+
# @option params [required, String] :key_id
|
8131
|
+
# The KMS key that will be used in the verification.
|
8132
|
+
#
|
8133
|
+
# Enter a key ID of the KMS key that was used to generate the HMAC. If
|
8134
|
+
# you identify a different KMS key, the `VerifyMac` operation fails.
|
8135
|
+
#
|
8136
|
+
# @option params [required, String] :mac_algorithm
|
8137
|
+
# The MAC algorithm that will be used in the verification. Enter the
|
8138
|
+
# same MAC algorithm that was used to compute the HMAC. This algorithm
|
8139
|
+
# must be supported by the HMAC KMS key identified by the `KeyId`
|
8140
|
+
# parameter.
|
8141
|
+
#
|
8142
|
+
# @option params [required, String, StringIO, File] :mac
|
8143
|
+
# The HMAC to verify. Enter the HMAC that was generated by the
|
8144
|
+
# GenerateMac operation when you specified the same message, HMAC KMS
|
8145
|
+
# key, and MAC algorithm as the values specified in this request.
|
8146
|
+
#
|
8147
|
+
# @option params [Array<String>] :grant_tokens
|
8148
|
+
# A list of grant tokens.
|
8149
|
+
#
|
8150
|
+
# Use a grant token when your permission to call this operation comes
|
8151
|
+
# from a new grant that has not yet achieved *eventual consistency*. For
|
8152
|
+
# more information, see [Grant token][1] and [Using a grant token][2] in
|
8153
|
+
# the *Key Management Service Developer Guide*.
|
8154
|
+
#
|
8155
|
+
#
|
8156
|
+
#
|
8157
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
|
8158
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
|
8159
|
+
#
|
8160
|
+
# @return [Types::VerifyMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
8161
|
+
#
|
8162
|
+
# * {Types::VerifyMacResponse#key_id #key_id} => String
|
8163
|
+
# * {Types::VerifyMacResponse#mac_valid #mac_valid} => Boolean
|
8164
|
+
# * {Types::VerifyMacResponse#mac_algorithm #mac_algorithm} => String
|
8165
|
+
#
|
8166
|
+
#
|
8167
|
+
# @example Example: To verify an HMAC
|
8168
|
+
#
|
8169
|
+
# # This example verifies an HMAC for a particular message, HMAC KMS keys, and MAC algorithm. A value of 'true' in the
|
8170
|
+
# # MacValid value in the response indicates that the HMAC is valid.
|
8171
|
+
#
|
8172
|
+
# resp = client.verify_mac({
|
8173
|
+
# key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The HMAC KMS key input to the HMAC algorithm.
|
8174
|
+
# mac: "<HMAC_TAG>", # The HMAC to be verified.
|
8175
|
+
# mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm requested for the operation.
|
8176
|
+
# message: "Hello World", # The message input to the HMAC algorithm.
|
8177
|
+
# })
|
8178
|
+
#
|
8179
|
+
# resp.to_h outputs the following:
|
8180
|
+
# {
|
8181
|
+
# 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.
|
8182
|
+
# mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm used in the operation.
|
8183
|
+
# mac_valid: true, # A value of 'true' indicates that verification succeeded. If verification fails, the call to VerifyMac fails.
|
8184
|
+
# }
|
8185
|
+
#
|
8186
|
+
# @example Request syntax with placeholder values
|
8187
|
+
#
|
8188
|
+
# resp = client.verify_mac({
|
8189
|
+
# message: "data", # required
|
8190
|
+
# key_id: "KeyIdType", # required
|
8191
|
+
# mac_algorithm: "HMAC_SHA_224", # required, accepts HMAC_SHA_224, HMAC_SHA_256, HMAC_SHA_384, HMAC_SHA_512
|
8192
|
+
# mac: "data", # required
|
8193
|
+
# grant_tokens: ["GrantTokenType"],
|
8194
|
+
# })
|
8195
|
+
#
|
8196
|
+
# @example Response structure
|
8197
|
+
#
|
8198
|
+
# resp.key_id #=> String
|
8199
|
+
# resp.mac_valid #=> Boolean
|
8200
|
+
# resp.mac_algorithm #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
|
8201
|
+
#
|
8202
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyMac AWS API Documentation
|
8203
|
+
#
|
8204
|
+
# @overload verify_mac(params = {})
|
8205
|
+
# @param [Hash] params ({})
|
8206
|
+
def verify_mac(params = {}, options = {})
|
8207
|
+
req = build_request(:verify_mac, params)
|
8208
|
+
req.send_request(options)
|
8209
|
+
end
|
8210
|
+
|
7536
8211
|
# @!endgroup
|
7537
8212
|
|
7538
8213
|
# @param params ({})
|
@@ -7546,7 +8221,7 @@ module Aws::KMS
|
|
7546
8221
|
params: params,
|
7547
8222
|
config: config)
|
7548
8223
|
context[:gem_name] = 'aws-sdk-kms'
|
7549
|
-
context[:gem_version] = '1.
|
8224
|
+
context[:gem_version] = '1.58.0'
|
7550
8225
|
Seahorse::Client::Request.new(handlers, context)
|
7551
8226
|
end
|
7552
8227
|
|