aws-sdk-kms 1.36.0 → 1.41.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4cf10aeb5e6e34a2a77a77b1431b7886d0906dbe3a4a70fe0e3a93c8dcbaaa2b
4
- data.tar.gz: 3fc2165a42629c08b730f694a40abb6a040ec857c6cacdd5f7d6cda050256e15
3
+ metadata.gz: 4d533ed3a6f0da1d98068040fd3613608b2161368ebe16de39e4b5d02edbd9fa
4
+ data.tar.gz: 5ca371033640f4891ae8be2822995437a3f03e136baed59894cae2f0698ab3aa
5
5
  SHA512:
6
- metadata.gz: 3dd329302083121bd51e9a0af46611bf888b2f947d020167b1df1324795d9894198fdb2d1b04a56bbbef891bc6bb7870327220ec21087787fb9902897b4b34ab
7
- data.tar.gz: b942fac422db7a8ca0dc8c15ca71dd177ee930d111b4de29928d2fcadb40725a7e38e2083a63fb63dd8b122b956c97b9e3de47b23db3cab7d206345677a04921
6
+ metadata.gz: f66ca1dbcef5f335345d3ee6de51f4e8283e5d12fb7d4483dbbaa62138408f78343f928148fbfd36acaafb1c56adec8d87d3f7843f16dbffb6044538d36bff2d
7
+ data.tar.gz: f0bd2e0a660ee3b2e87af86dc8bae3524be68d0113473952f6b6902cdd9087f858ac910e512f6191b80d9ecd8169c80be2b858467b1727fe550015a635a68bdb
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  require 'aws-sdk-core'
11
12
  require 'aws-sigv4'
12
13
 
@@ -44,9 +45,9 @@ require_relative 'aws-sdk-kms/customizations'
44
45
  #
45
46
  # See {Errors} for more information.
46
47
  #
47
- # @service
48
+ # @!group service
48
49
  module Aws::KMS
49
50
 
50
- GEM_VERSION = '1.36.0'
51
+ GEM_VERSION = '1.41.0'
51
52
 
52
53
  end
@@ -85,13 +85,28 @@ module Aws::KMS
85
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
86
  # credentials.
87
87
  #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
88
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
89
103
  # from an EC2 IMDS on an EC2 instance.
90
104
  #
91
- # * `Aws::SharedCredentials` - Used for loading credentials from a
92
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
93
107
  #
94
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
95
110
  #
96
111
  # When `:credentials` are not configured directly, the following
97
112
  # locations will be searched for credentials:
@@ -101,10 +116,10 @@ module Aws::KMS
101
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
102
117
  # * `~/.aws/credentials`
103
118
  # * `~/.aws/config`
104
- # * EC2 IMDS instance profile - When used by default, the timeouts are
105
- # very aggressive. Construct and pass an instance of
106
- # `Aws::InstanceProfileCredentails` to enable retries and extended
107
- # timeouts.
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
108
123
  #
109
124
  # @option options [required, String] :region
110
125
  # The AWS region to connect to. The configured `:region` is
@@ -324,8 +339,7 @@ module Aws::KMS
324
339
 
325
340
  # Cancels the deletion of a customer master key (CMK). When this
326
341
  # operation succeeds, the key state of the CMK is `Disabled`. To enable
327
- # the CMK, use EnableKey. You cannot perform this operation on a CMK in
328
- # a different AWS account.
342
+ # the CMK, use EnableKey.
329
343
  #
330
344
  # For more information about scheduling and canceling deletion of a CMK,
331
345
  # see [Deleting Customer Master Keys][1] in the *AWS Key Management
@@ -335,10 +349,18 @@ module Aws::KMS
335
349
  # state. For details, see [How Key State Affects Use of a Customer
336
350
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
337
351
  #
352
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
353
+ # in a different AWS account.
354
+ #
355
+ # **Required permissions**\: [kms:CancelKeyDeletion][3] (key policy)
356
+ #
357
+ # **Related operations**\: ScheduleKeyDeletion
358
+ #
338
359
  #
339
360
  #
340
361
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html
341
362
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
363
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
342
364
  #
343
365
  # @option params [required, String] :key_id
344
366
  # The unique identifier for the customer master key (CMK) for which to
@@ -433,6 +455,23 @@ module Aws::KMS
433
455
  # store, see [Troubleshooting a Custom Key Store][5] in the *AWS Key
434
456
  # Management Service Developer Guide*.
435
457
  #
458
+ # **Cross-account use**\: No. You cannot perform this operation on a
459
+ # custom key store in a different AWS account.
460
+ #
461
+ # **Required permissions**\: [kms:ConnectCustomKeyStore][6] (IAM policy)
462
+ #
463
+ # **Related operations**
464
+ #
465
+ # * CreateCustomKeyStore
466
+ #
467
+ # * DeleteCustomKeyStore
468
+ #
469
+ # * DescribeCustomKeyStores
470
+ #
471
+ # * DisconnectCustomKeyStore
472
+ #
473
+ # * UpdateCustomKeyStore
474
+ #
436
475
  #
437
476
  #
438
477
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
@@ -440,6 +479,7 @@ module Aws::KMS
440
479
  # [3]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html
441
480
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser
442
481
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html
482
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
443
483
  #
444
484
  # @option params [required, String] :custom_key_store_id
445
485
  # Enter the key store ID of the custom key store that you want to
@@ -463,96 +503,98 @@ module Aws::KMS
463
503
  req.send_request(options)
464
504
  end
465
505
 
466
- # Creates a display name for a customer managed customer master key
467
- # (CMK). You can use an alias to identify a CMK in [cryptographic
468
- # operations][1], such as Encrypt and GenerateDataKey. You can change
469
- # the CMK associated with the alias at any time.
470
- #
471
- # Aliases are easier to remember than key IDs. They can also help to
472
- # simplify your applications. For example, if you use an alias in your
473
- # code, you can change the CMK your code uses by associating a given
474
- # alias with a different CMK.
475
- #
476
- # To run the same code in multiple AWS regions, use an alias in your
477
- # code, such as `alias/ApplicationKey`. Then, in each AWS Region, create
478
- # an `alias/ApplicationKey` alias that is associated with a CMK in that
479
- # Region. When you run your code, it uses the `alias/ApplicationKey` CMK
480
- # for that AWS Region without any Region-specific code.
506
+ # Creates a friendly name for a customer master key (CMK). You can use
507
+ # an alias to identify a CMK in the AWS KMS console, in the DescribeKey
508
+ # operation and in [cryptographic operations][1], such as Encrypt and
509
+ # GenerateDataKey.
510
+ #
511
+ # You can also change the CMK that's associated with the alias
512
+ # (UpdateAlias) or delete the alias (DeleteAlias) at any time. These
513
+ # operations don't affect the underlying CMK.
514
+ #
515
+ # You can associate the alias with any customer managed CMK in the same
516
+ # AWS Region. Each alias is associated with only on CMK at a time, but a
517
+ # CMK can have multiple aliases. A valid CMK is required. You can't
518
+ # create an alias without a CMK.
519
+ #
520
+ # The alias must be unique in the account and Region, but you can have
521
+ # aliases with the same name in different Regions. For detailed
522
+ # information about aliases, see [Using aliases][2] in the *AWS Key
523
+ # Management Service Developer Guide*.
481
524
  #
482
525
  # This operation does not return a response. To get the alias that you
483
526
  # created, use the ListAliases operation.
484
527
  #
485
- # To use aliases successfully, be aware of the following information.
528
+ # The CMK that you use for this operation must be in a compatible key
529
+ # state. For details, see [How Key State Affects Use of a Customer
530
+ # Master Key][3] in the *AWS Key Management Service Developer Guide*.
486
531
  #
487
- # * Each alias points to only one CMK at a time, although a single CMK
488
- # can have multiple aliases. The alias and its associated CMK must be
489
- # in the same AWS account and Region.
532
+ # **Cross-account use**\: No. You cannot perform this operation on an
533
+ # alias in a different AWS account.
490
534
  #
491
- # * You can associate an alias with any customer managed CMK in the same
492
- # AWS account and Region. However, you do not have permission to
493
- # associate an alias with an [AWS managed CMK][2] or an [AWS owned
494
- # CMK][3].
535
+ # **Required permissions**
495
536
  #
496
- # * To change the CMK associated with an alias, use the UpdateAlias
497
- # operation. The current CMK and the new CMK must be the same type
498
- # (both symmetric or both asymmetric) and they must have the same key
499
- # usage (`ENCRYPT_DECRYPT` or `SIGN_VERIFY`). This restriction
500
- # prevents cryptographic errors in code that uses aliases.
501
- #
502
- # * The alias name must begin with `alias/` followed by a name, such as
503
- # `alias/ExampleAlias`. It can contain only alphanumeric characters,
504
- # forward slashes (/), underscores (\_), and dashes (-). The alias
505
- # name cannot begin with `alias/aws/`. The `alias/aws/` prefix is
506
- # reserved for [AWS managed CMKs][2].
507
- #
508
- # * The alias name must be unique within an AWS Region. However, you can
509
- # use the same alias name in multiple Regions of the same AWS account.
510
- # Each instance of the alias is associated with a CMK in its Region.
511
- #
512
- # * After you create an alias, you cannot change its alias name.
513
- # However, you can use the DeleteAlias operation to delete the alias
514
- # and then create a new alias with the desired name.
515
- #
516
- # * You can use an alias name or alias ARN to identify a CMK in AWS KMS
517
- # [cryptographic operations][1] and in the DescribeKey operation.
518
- # However, you cannot use alias names or alias ARNs in API operations
519
- # that manage CMKs, such as DisableKey or GetKeyPolicy. For
520
- # information about the valid CMK identifiers for each AWS KMS API
521
- # operation, see the descriptions of the `KeyId` parameter in the API
522
- # operation documentation.
537
+ # * [kms:CreateAlias][4] on the alias (IAM policy).
523
538
  #
524
- # Because an alias is not a property of a CMK, you can delete and change
525
- # the aliases of a CMK without affecting the CMK. Also, aliases do not
526
- # appear in the response from the DescribeKey operation. To get the
527
- # aliases and alias ARNs of CMKs in each AWS account and Region, use the
528
- # ListAliases operation.
539
+ # * [kms:CreateAlias][4] on the CMK (key policy).
529
540
  #
530
- # The CMK that you use for this operation must be in a compatible key
531
- # state. For details, see [How Key State Affects Use of a Customer
532
- # Master Key][4] in the *AWS Key Management Service Developer Guide*.
541
+ # For details, see [Controlling access to aliases][5] in the *AWS Key
542
+ # Management Service Developer Guide*.
543
+ #
544
+ # **Related operations:**
545
+ #
546
+ # * DeleteAlias
547
+ #
548
+ # * ListAliases
549
+ #
550
+ # * UpdateAlias
533
551
  #
534
552
  #
535
553
  #
536
554
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
537
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
538
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
539
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
555
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html
556
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
557
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
558
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
540
559
  #
541
560
  # @option params [required, String] :alias_name
542
561
  # Specifies the alias name. This value must begin with `alias/` followed
543
- # by a name, such as `alias/ExampleAlias`. The alias name cannot begin
544
- # with `alias/aws/`. The `alias/aws/` prefix is reserved for AWS managed
545
- # CMKs.
562
+ # by a name, such as `alias/ExampleAlias`.
563
+ #
564
+ # The `AliasName` value must be string of 1-256 characters. It can
565
+ # contain only alphanumeric characters, forward slashes (/), underscores
566
+ # (\_), and dashes (-). The alias name cannot begin with `alias/aws/`.
567
+ # The `alias/aws/` prefix is reserved for [AWS managed CMKs][1].
568
+ #
569
+ #
570
+ #
571
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
546
572
  #
547
573
  # @option params [required, String] :target_key_id
548
- # Identifies the CMK to which the alias refers. Specify the key ID or
549
- # the Amazon Resource Name (ARN) of the CMK. You cannot specify another
550
- # alias. For help finding the key ID and ARN, see [Finding the Key ID
551
- # and ARN][1] in the *AWS Key Management Service Developer Guide*.
574
+ # Associates the alias with the specified [customer managed CMK][1]. The
575
+ # CMK must be in the same AWS Region.
576
+ #
577
+ # A valid CMK ID is required. If you supply a null or empty string
578
+ # value, this operation returns an error.
579
+ #
580
+ # For help finding the key ID and ARN, see [Finding the Key ID and
581
+ # ARN][2] in the *AWS Key Management Service Developer Guide*.
582
+ #
583
+ # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
584
+ #
585
+ # For example:
586
+ #
587
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
588
+ #
589
+ # * Key ARN:
590
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
591
+ #
592
+ # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
552
593
  #
553
594
  #
554
595
  #
555
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn
596
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
597
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn
556
598
  #
557
599
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
558
600
  #
@@ -606,12 +648,30 @@ module Aws::KMS
606
648
  # For help with failures, see [Troubleshooting a Custom Key Store][4] in
607
649
  # the *AWS Key Management Service Developer Guide*.
608
650
  #
651
+ # **Cross-account use**\: No. You cannot perform this operation on a
652
+ # custom key store in a different AWS account.
653
+ #
654
+ # **Required permissions**\: [kms:CreateCustomKeyStore][5] (IAM policy).
655
+ #
656
+ # **Related operations:**
657
+ #
658
+ # * ConnectCustomKeyStore
659
+ #
660
+ # * DeleteCustomKeyStore
661
+ #
662
+ # * DescribeCustomKeyStores
663
+ #
664
+ # * DisconnectCustomKeyStore
665
+ #
666
+ # * UpdateCustomKeyStore
667
+ #
609
668
  #
610
669
  #
611
670
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
612
671
  # [2]: https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html
613
672
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore
614
673
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html
674
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
615
675
  #
616
676
  # @option params [required, String] :custom_key_store_name
617
677
  # Specifies a friendly name for the custom key store. The name must be
@@ -713,17 +773,29 @@ module Aws::KMS
713
773
  #
714
774
  # For information about symmetric and asymmetric CMKs, see [Using
715
775
  # Symmetric and Asymmetric CMKs][8] in the *AWS Key Management Service
716
- # Developer Guide*.
717
- #
718
- # To perform this operation on a CMK in a different AWS account, specify
719
- # the key ARN in the value of the `KeyId` parameter. For more
720
- # information about grants, see [Grants][9] in the <i> <i>AWS Key
721
- # Management Service Developer Guide</i> </i>.
776
+ # Developer Guide*. For more information about grants, see [Grants][9]
777
+ # in the <i> <i>AWS Key Management Service Developer Guide</i> </i>.
722
778
  #
723
779
  # The CMK that you use for this operation must be in a compatible key
724
780
  # state. For details, see [How Key State Affects Use of a Customer
725
781
  # Master Key][10] in the *AWS Key Management Service Developer Guide*.
726
782
  #
783
+ # **Cross-account use**\: Yes. To perform this operation on a CMK in a
784
+ # different AWS account, specify the key ARN in the value of the `KeyId`
785
+ # parameter.
786
+ #
787
+ # **Required permissions**\: [kms:CreateGrant][11] (key policy)
788
+ #
789
+ # **Related operations:**
790
+ #
791
+ # * ListGrants
792
+ #
793
+ # * ListRetirableGrants
794
+ #
795
+ # * RetireGrant
796
+ #
797
+ # * RevokeGrant
798
+ #
727
799
  #
728
800
  #
729
801
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
@@ -736,6 +808,7 @@ module Aws::KMS
736
808
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
737
809
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
738
810
  # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
811
+ # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
739
812
  #
740
813
  # @option params [required, String] :key_id
741
814
  # The unique identifier for the customer master key (CMK) that the grant
@@ -795,6 +868,10 @@ module Aws::KMS
795
868
  # [Encryption Context][2] in the <i> <i>AWS Key Management Service
796
869
  # Developer Guide</i> </i>.
797
870
  #
871
+ # Grant constraints are not applied to operations that do not support an
872
+ # encryption context, such as cryptographic operations with asymmetric
873
+ # CMKs and management operations, such as DescribeKey or RetireGrant.
874
+ #
798
875
  #
799
876
  #
800
877
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
@@ -811,9 +888,8 @@ module Aws::KMS
811
888
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
812
889
  #
813
890
  # @option params [String] :name
814
- # A friendly name for identifying the grant. Use this value to prevent
815
- # the unintended creation of duplicate grants when retrying this
816
- # request.
891
+ # A friendly name for the grant. Use this value to prevent the
892
+ # unintended creation of duplicate grants when retrying this request.
817
893
  #
818
894
  # When this value is absent, all `CreateGrant` requests result in a new
819
895
  # grant with a unique `GrantId` even if all the supplied parameters are
@@ -824,8 +900,8 @@ module Aws::KMS
824
900
  # identical parameters; if the grant already exists, the original
825
901
  # `GrantId` is returned without creating a new grant. Note that the
826
902
  # returned grant token is unique with every `CreateGrant` request, even
827
- # when a duplicate `GrantId` is returned. All grant tokens obtained in
828
- # this way can be used interchangeably.
903
+ # when a duplicate `GrantId` is returned. All grant tokens for the same
904
+ # grant ID can be used interchangeably.
829
905
  #
830
906
  # @return [Types::CreateGrantResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
831
907
  #
@@ -887,8 +963,7 @@ module Aws::KMS
887
963
  end
888
964
 
889
965
  # Creates a unique customer managed [customer master key][1] (CMK) in
890
- # your AWS account and Region. You cannot use this operation to create a
891
- # CMK in a different AWS account.
966
+ # your AWS account and Region.
892
967
  #
893
968
  # You can use the `CreateKey` operation to create symmetric or
894
969
  # asymmetric CMKs.
@@ -963,6 +1038,22 @@ module Aws::KMS
963
1038
  # Stores][6] in the <i> <i>AWS Key Management Service Developer
964
1039
  # Guide</i> </i>.
965
1040
  #
1041
+ # **Cross-account use**\: No. You cannot use this operation to create a
1042
+ # CMK in a different AWS account.
1043
+ #
1044
+ # **Required permissions**\: [kms:CreateKey][7] (IAM policy). To use the
1045
+ # `Tags` parameter, [kms:TagResource][7] (IAM policy). For examples and
1046
+ # information about related permissions, see [Allow a user to create
1047
+ # CMKs][8] in the *AWS Key Management Service Developer Guide*.
1048
+ #
1049
+ # **Related operations:**
1050
+ #
1051
+ # * DescribeKey
1052
+ #
1053
+ # * ListKeys
1054
+ #
1055
+ # * ScheduleKeyDeletion
1056
+ #
966
1057
  #
967
1058
  #
968
1059
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master-keys
@@ -971,6 +1062,8 @@ module Aws::KMS
971
1062
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
972
1063
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
973
1064
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1065
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1066
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key
974
1067
  #
975
1068
  # @option params [String] :policy
976
1069
  # The key policy to attach to the CMK.
@@ -1000,11 +1093,15 @@ module Aws::KMS
1000
1093
  #
1001
1094
  # The key policy size quota is 32 kilobytes (32768 bytes).
1002
1095
  #
1096
+ # For help writing and formatting a JSON policy document, see the [IAM
1097
+ # JSON Policy Reference][4] in the <i> <i>IAM User Guide</i> </i>.
1098
+ #
1003
1099
  #
1004
1100
  #
1005
1101
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
1006
1102
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
1007
1103
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
1104
+ # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
1008
1105
  #
1009
1106
  # @option params [String] :description
1010
1107
  # A description of the CMK.
@@ -1173,9 +1270,13 @@ module Aws::KMS
1173
1270
  # Use this parameter to tag the CMK when it is created. To add tags to
1174
1271
  # an existing CMK, use the TagResource operation.
1175
1272
  #
1273
+ # To use this parameter, you must have [kms:TagResource][2] permission
1274
+ # in an IAM policy.
1275
+ #
1176
1276
  #
1177
1277
  #
1178
1278
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
1279
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1179
1280
  #
1180
1281
  # @return [Types::CreateKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1181
1282
  #
@@ -1288,35 +1389,57 @@ module Aws::KMS
1288
1389
  # encryption][3]. These libraries return a ciphertext format that is
1289
1390
  # incompatible with AWS KMS.
1290
1391
  #
1291
- # If the ciphertext was encrypted under a symmetric CMK, you do not need
1292
- # to specify the CMK or the encryption algorithm. AWS KMS can get this
1293
- # information from metadata that it adds to the symmetric ciphertext
1294
- # blob. However, if you prefer, you can specify the `KeyId` to ensure
1295
- # that a particular CMK is used to decrypt the ciphertext. If you
1296
- # specify a different CMK than the one used to encrypt the ciphertext,
1297
- # the `Decrypt` operation fails.
1392
+ # If the ciphertext was encrypted under a symmetric CMK, the `KeyId`
1393
+ # parameter is optional. AWS KMS can get this information from metadata
1394
+ # that it adds to the symmetric ciphertext blob. This feature adds
1395
+ # durability to your implementation by ensuring that authorized users
1396
+ # can decrypt ciphertext decades after it was encrypted, even if
1397
+ # they've lost track of the CMK ID. However, specifying the CMK is
1398
+ # always recommended as a best practice. When you use the `KeyId`
1399
+ # parameter to specify a CMK, AWS KMS only uses the CMK you specify. If
1400
+ # the ciphertext was encrypted under a different CMK, the `Decrypt`
1401
+ # operation fails. This practice ensures that you use the CMK that you
1402
+ # intend.
1298
1403
  #
1299
1404
  # Whenever possible, use key policies to give users permission to call
1300
- # the Decrypt operation on a particular CMK, instead of using IAM
1405
+ # the `Decrypt` operation on a particular CMK, instead of using IAM
1301
1406
  # policies. Otherwise, you might create an IAM user policy that gives
1302
- # the user Decrypt permission on all CMKs. This user could decrypt
1407
+ # the user `Decrypt` permission on all CMKs. This user could decrypt
1303
1408
  # ciphertext that was encrypted by CMKs in other accounts if the key
1304
1409
  # policy for the cross-account CMK permits it. If you must use an IAM
1305
1410
  # policy for `Decrypt` permissions, limit the user to particular CMKs or
1306
- # particular trusted accounts.
1411
+ # particular trusted accounts. For details, see [Best practices for IAM
1412
+ # policies][4] in the *AWS Key Management Service Developer Guide*.
1307
1413
  #
1308
1414
  # The CMK that you use for this operation must be in a compatible key
1309
1415
  # state. For details, see [How Key State Affects Use of a Customer
1310
- # Master Key][4] in the *AWS Key Management Service Developer Guide*.
1416
+ # Master Key][5] in the *AWS Key Management Service Developer Guide*.
1417
+ #
1418
+ # **Cross-account use**\: Yes. You can decrypt a ciphertext using a CMK
1419
+ # in a different AWS account.
1420
+ #
1421
+ # **Required permissions**\: [kms:Decrypt][6] (key policy)
1422
+ #
1423
+ # **Related operations:**
1424
+ #
1425
+ # * Encrypt
1426
+ #
1427
+ # * GenerateDataKey
1428
+ #
1429
+ # * GenerateDataKeyPair
1430
+ #
1431
+ # * ReEncrypt
1311
1432
  #
1312
1433
  #
1313
1434
  #
1314
1435
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
1315
1436
  # [2]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
1316
1437
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
1317
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1438
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices
1439
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1440
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1318
1441
  #
1319
- # @option params [required, String, IO] :ciphertext_blob
1442
+ # @option params [required, String, StringIO, File] :ciphertext_blob
1320
1443
  # Ciphertext to be decrypted. The blob includes metadata.
1321
1444
  #
1322
1445
  # @option params [Hash<String,String>] :encryption_context
@@ -1351,22 +1474,20 @@ module Aws::KMS
1351
1474
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
1352
1475
  #
1353
1476
  # @option params [String] :key_id
1354
- # Specifies the customer master key (CMK) that AWS KMS will use to
1355
- # decrypt the ciphertext. Enter a key ID of the CMK that was used to
1356
- # encrypt the ciphertext.
1357
- #
1358
- # If you specify a `KeyId` value, the `Decrypt` operation succeeds only
1359
- # if the specified CMK was used to encrypt the ciphertext.
1477
+ # Specifies the customer master key (CMK) that AWS KMS uses to decrypt
1478
+ # the ciphertext. Enter a key ID of the CMK that was used to encrypt the
1479
+ # ciphertext.
1360
1480
  #
1361
1481
  # This parameter is required only when the ciphertext was encrypted
1362
- # under an asymmetric CMK. Otherwise, AWS KMS uses the metadata that it
1363
- # adds to the ciphertext blob to determine which CMK was used to encrypt
1364
- # the ciphertext. However, you can use this parameter to ensure that a
1365
- # particular CMK (of any kind) is used to decrypt the ciphertext.
1482
+ # under an asymmetric CMK. If you used a symmetric CMK, AWS KMS can get
1483
+ # the CMK from metadata that it adds to the symmetric ciphertext blob.
1484
+ # However, it is always recommended as a best practice. This practice
1485
+ # ensures that you use the CMK that you intend.
1366
1486
  #
1367
1487
  # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1368
1488
  # name, or alias ARN. When using an alias name, prefix it with
1369
- # `"alias/"`.
1489
+ # `"alias/"`. To specify a CMK in a different AWS account, you must use
1490
+ # the key ARN or alias ARN.
1370
1491
  #
1371
1492
  # For example:
1372
1493
  #
@@ -1406,6 +1527,7 @@ module Aws::KMS
1406
1527
  #
1407
1528
  # resp = client.decrypt({
1408
1529
  # ciphertext_blob: "<binary data>", # The encrypted data (ciphertext).
1530
+ # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # A key identifier for the CMK to use to decrypt the data.
1409
1531
  # })
1410
1532
  #
1411
1533
  # resp.to_h outputs the following:
@@ -1441,8 +1563,7 @@ module Aws::KMS
1441
1563
  req.send_request(options)
1442
1564
  end
1443
1565
 
1444
- # Deletes the specified alias. You cannot perform this operation on an
1445
- # alias in a different AWS account.
1566
+ # Deletes the specified alias.
1446
1567
  #
1447
1568
  # Because an alias is not a property of a CMK, you can delete and change
1448
1569
  # the aliases of a CMK without affecting the CMK. Also, aliases do not
@@ -1454,6 +1575,31 @@ module Aws::KMS
1454
1575
  # new alias. To associate an existing alias with a different customer
1455
1576
  # master key (CMK), call UpdateAlias.
1456
1577
  #
1578
+ # **Cross-account use**\: No. You cannot perform this operation on an
1579
+ # alias in a different AWS account.
1580
+ #
1581
+ # **Required permissions**
1582
+ #
1583
+ # * [kms:DeleteAlias][1] on the alias (IAM policy).
1584
+ #
1585
+ # * [kms:DeleteAlias][1] on the CMK (key policy).
1586
+ #
1587
+ # For details, see [Controlling access to aliases][2] in the *AWS Key
1588
+ # Management Service Developer Guide*.
1589
+ #
1590
+ # **Related operations:**
1591
+ #
1592
+ # * CreateAlias
1593
+ #
1594
+ # * ListAliases
1595
+ #
1596
+ # * UpdateAlias
1597
+ #
1598
+ #
1599
+ #
1600
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1601
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
1602
+ #
1457
1603
  # @option params [required, String] :alias_name
1458
1604
  # The alias to be deleted. The alias name must begin with `alias/`
1459
1605
  # followed by the alias name, such as `alias/ExampleAlias`.
@@ -1516,12 +1662,30 @@ module Aws::KMS
1516
1662
  # AWS KMS, which combines the convenience and extensive integration of
1517
1663
  # AWS KMS with the isolation and control of a single-tenant key store.
1518
1664
  #
1665
+ # **Cross-account use**\: No. You cannot perform this operation on a
1666
+ # custom key store in a different AWS account.
1667
+ #
1668
+ # **Required permissions**\: [kms:DeleteCustomKeyStore][5] (IAM policy)
1669
+ #
1670
+ # **Related operations:**
1671
+ #
1672
+ # * ConnectCustomKeyStore
1673
+ #
1674
+ # * CreateCustomKeyStore
1675
+ #
1676
+ # * DescribeCustomKeyStores
1677
+ #
1678
+ # * DisconnectCustomKeyStore
1679
+ #
1680
+ # * UpdateCustomKeyStore
1681
+ #
1519
1682
  #
1520
1683
  #
1521
1684
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1522
1685
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys
1523
1686
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1524
1687
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
1688
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1525
1689
  #
1526
1690
  # @option params [required, String] :custom_key_store_id
1527
1691
  # Enter the ID of the custom key store you want to delete. To find the
@@ -1548,7 +1712,6 @@ module Aws::KMS
1548
1712
  # makes the specified customer master key (CMK) unusable. For more
1549
1713
  # information about importing key material into AWS KMS, see [Importing
1550
1714
  # Key Material][1] in the *AWS Key Management Service Developer Guide*.
1551
- # You cannot perform this operation on a CMK in a different AWS account.
1552
1715
  #
1553
1716
  # When the specified CMK is in the `PendingDeletion` state, this
1554
1717
  # operation does not change the CMK's state. Otherwise, it changes the
@@ -1561,10 +1724,23 @@ module Aws::KMS
1561
1724
  # state. For details, see [How Key State Affects Use of a Customer
1562
1725
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
1563
1726
  #
1727
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
1728
+ # in a different AWS account.
1729
+ #
1730
+ # **Required permissions**\: [kms:DeleteImportedKeyMaterial][3] (key
1731
+ # policy)
1732
+ #
1733
+ # **Related operations:**
1734
+ #
1735
+ # * GetParametersForImport
1736
+ #
1737
+ # * ImportKeyMaterial
1738
+ #
1564
1739
  #
1565
1740
  #
1566
1741
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
1567
1742
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1743
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1568
1744
  #
1569
1745
  # @option params [required, String] :key_id
1570
1746
  # Identifies the CMK from which you are deleting imported key material.
@@ -1637,10 +1813,29 @@ module Aws::KMS
1637
1813
  # Custom Key Stores][2] topic in the *AWS Key Management Service
1638
1814
  # Developer Guide*.
1639
1815
  #
1816
+ # **Cross-account use**\: No. You cannot perform this operation on a
1817
+ # custom key store in a different AWS account.
1818
+ #
1819
+ # **Required permissions**\: [kms:DescribeCustomKeyStores][3] (IAM
1820
+ # policy)
1821
+ #
1822
+ # **Related operations:**
1823
+ #
1824
+ # * ConnectCustomKeyStore
1825
+ #
1826
+ # * CreateCustomKeyStore
1827
+ #
1828
+ # * DeleteCustomKeyStore
1829
+ #
1830
+ # * DisconnectCustomKeyStore
1831
+ #
1832
+ # * UpdateCustomKeyStore
1833
+ #
1640
1834
  #
1641
1835
  #
1642
1836
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1643
1837
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html
1838
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1644
1839
  #
1645
1840
  # @option params [String] :custom_key_store_id
1646
1841
  # Gets only information about the specified custom key store. Enter the
@@ -1742,8 +1937,27 @@ module Aws::KMS
1742
1937
  # CMK][4]. Then, it associates the alias with the new CMK, and returns
1743
1938
  # the `KeyId` and `Arn` of the new CMK in the response.
1744
1939
  #
1745
- # To perform this operation on a CMK in a different AWS account, specify
1746
- # the key ARN or alias ARN in the value of the KeyId parameter.
1940
+ # **Cross-account use**\: Yes. To perform this operation with a CMK in a
1941
+ # different AWS account, specify the key ARN or alias ARN in the value
1942
+ # of the `KeyId` parameter.
1943
+ #
1944
+ # **Required permissions**\: [kms:DescribeKey][5] (key policy)
1945
+ #
1946
+ # **Related operations:**
1947
+ #
1948
+ # * GetKeyPolicy
1949
+ #
1950
+ # * GetKeyRotationStatus
1951
+ #
1952
+ # * ListAliases
1953
+ #
1954
+ # * ListGrants
1955
+ #
1956
+ # * ListKeys
1957
+ #
1958
+ # * ListResourceTags
1959
+ #
1960
+ # * ListRetirableGrants
1747
1961
  #
1748
1962
  #
1749
1963
  #
@@ -1751,6 +1965,7 @@ module Aws::KMS
1751
1965
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
1752
1966
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works
1753
1967
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys
1968
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1754
1969
  #
1755
1970
  # @option params [required, String] :key_id
1756
1971
  # Describes the specified customer master key (CMK).
@@ -1860,9 +2075,8 @@ module Aws::KMS
1860
2075
  req.send_request(options)
1861
2076
  end
1862
2077
 
1863
- # Sets the state of a customer master key (CMK) to disabled, thereby
1864
- # preventing its use for [cryptographic operations][1]. You cannot
1865
- # perform this operation on a CMK in a different AWS account.
2078
+ # Sets the state of a customer master key (CMK) to disabled. This change
2079
+ # temporarily prevents use of the CMK for [cryptographic operations][1].
1866
2080
  #
1867
2081
  # For more information about how key state affects the use of a CMK, see
1868
2082
  # [How Key State Affects the Use of a Customer Master Key][2] in the <i>
@@ -1872,10 +2086,18 @@ module Aws::KMS
1872
2086
  # state. For details, see [How Key State Affects Use of a Customer
1873
2087
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
1874
2088
  #
2089
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
2090
+ # in a different AWS account.
2091
+ #
2092
+ # **Required permissions**\: [kms:DisableKey][3] (key policy)
2093
+ #
2094
+ # **Related operations**\: EnableKey
2095
+ #
1875
2096
  #
1876
2097
  #
1877
2098
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1878
2099
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2100
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1879
2101
  #
1880
2102
  # @option params [required, String] :key_id
1881
2103
  # A unique identifier for the customer master key (CMK).
@@ -1921,23 +2143,34 @@ module Aws::KMS
1921
2143
  # symmetric customer master key (CMK).
1922
2144
  #
1923
2145
  # You cannot enable automatic rotation of asymmetric CMKs, CMKs with
1924
- # imported key material, or CMKs in a [custom key store][2]. You cannot
1925
- # perform this operation on a CMK in a different AWS account.
2146
+ # imported key material, or CMKs in a [custom key store][2].
1926
2147
  #
1927
2148
  # The CMK that you use for this operation must be in a compatible key
1928
2149
  # state. For details, see [How Key State Affects Use of a Customer
1929
2150
  # Master Key][3] in the *AWS Key Management Service Developer Guide*.
1930
2151
  #
2152
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
2153
+ # in a different AWS account.
2154
+ #
2155
+ # **Required permissions**\: [kms:DisableKeyRotation][4] (key policy)
2156
+ #
2157
+ # **Related operations:**
2158
+ #
2159
+ # * EnableKeyRotation
2160
+ #
2161
+ # * GetKeyRotationStatus
2162
+ #
1931
2163
  #
1932
2164
  #
1933
2165
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
1934
2166
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1935
2167
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2168
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1936
2169
  #
1937
2170
  # @option params [required, String] :key_id
1938
- # Identifies a symmetric customer master key (CMK). You cannot enable
1939
- # automatic rotation of [asymmetric CMKs][1], CMKs with [imported key
1940
- # material][2], or CMKs in a [custom key store][3].
2171
+ # Identifies a symmetric customer master key (CMK). You cannot enable or
2172
+ # disable automatic rotation of [asymmetric CMKs][1], CMKs with
2173
+ # [imported key material][2], or CMKs in a [custom key store][3].
1941
2174
  #
1942
2175
  # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1943
2176
  #
@@ -2008,10 +2241,29 @@ module Aws::KMS
2008
2241
  # AWS KMS, which combines the convenience and extensive integration of
2009
2242
  # AWS KMS with the isolation and control of a single-tenant key store.
2010
2243
  #
2244
+ # **Cross-account use**\: No. You cannot perform this operation on a
2245
+ # custom key store in a different AWS account.
2246
+ #
2247
+ # **Required permissions**\: [kms:DisconnectCustomKeyStore][3] (IAM
2248
+ # policy)
2249
+ #
2250
+ # **Related operations:**
2251
+ #
2252
+ # * ConnectCustomKeyStore
2253
+ #
2254
+ # * CreateCustomKeyStore
2255
+ #
2256
+ # * DeleteCustomKeyStore
2257
+ #
2258
+ # * DescribeCustomKeyStores
2259
+ #
2260
+ # * UpdateCustomKeyStore
2261
+ #
2011
2262
  #
2012
2263
  #
2013
2264
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2014
2265
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2266
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2015
2267
  #
2016
2268
  # @option params [required, String] :custom_key_store_id
2017
2269
  # Enter the ID of the custom key store you want to disconnect. To find
@@ -2036,17 +2288,24 @@ module Aws::KMS
2036
2288
  end
2037
2289
 
2038
2290
  # Sets the key state of a customer master key (CMK) to enabled. This
2039
- # allows you to use the CMK for [cryptographic operations][1]. You
2040
- # cannot perform this operation on a CMK in a different AWS account.
2291
+ # allows you to use the CMK for [cryptographic operations][1].
2041
2292
  #
2042
2293
  # The CMK that you use for this operation must be in a compatible key
2043
2294
  # state. For details, see [How Key State Affects Use of a Customer
2044
2295
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2045
2296
  #
2297
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
2298
+ # in a different AWS account.
2299
+ #
2300
+ # **Required permissions**\: [kms:EnableKey][3] (key policy)
2301
+ #
2302
+ # **Related operations**\: DisableKey
2303
+ #
2046
2304
  #
2047
2305
  #
2048
2306
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2049
2307
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2308
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2050
2309
  #
2051
2310
  # @option params [required, String] :key_id
2052
2311
  # A unique identifier for the customer master key (CMK).
@@ -2089,8 +2348,7 @@ module Aws::KMS
2089
2348
  end
2090
2349
 
2091
2350
  # Enables [automatic rotation of the key material][1] for the specified
2092
- # symmetric customer master key (CMK). You cannot perform this operation
2093
- # on a CMK in a different AWS account.
2351
+ # symmetric customer master key (CMK).
2094
2352
  #
2095
2353
  # You cannot enable automatic rotation of asymmetric CMKs, CMKs with
2096
2354
  # imported key material, or CMKs in a [custom key store][2].
@@ -2099,11 +2357,23 @@ module Aws::KMS
2099
2357
  # state. For details, see [How Key State Affects Use of a Customer
2100
2358
  # Master Key][3] in the *AWS Key Management Service Developer Guide*.
2101
2359
  #
2360
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
2361
+ # in a different AWS account.
2362
+ #
2363
+ # **Required permissions**\: [kms:EnableKeyRotation][4] (key policy)
2364
+ #
2365
+ # **Related operations:**
2366
+ #
2367
+ # * DisableKeyRotation
2368
+ #
2369
+ # * GetKeyRotationStatus
2370
+ #
2102
2371
  #
2103
2372
  #
2104
2373
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
2105
2374
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2106
2375
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2376
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2107
2377
  #
2108
2378
  # @option params [required, String] :key_id
2109
2379
  # Identifies a symmetric customer master key (CMK). You cannot enable
@@ -2229,13 +2499,25 @@ module Aws::KMS
2229
2499
  # state. For details, see [How Key State Affects Use of a Customer
2230
2500
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2231
2501
  #
2232
- # To perform this operation on a CMK in a different AWS account, specify
2233
- # the key ARN or alias ARN in the value of the KeyId parameter.
2502
+ # **Cross-account use**\: Yes. To perform this operation with a CMK in a
2503
+ # different AWS account, specify the key ARN or alias ARN in the value
2504
+ # of the `KeyId` parameter.
2505
+ #
2506
+ # **Required permissions**\: [kms:Encrypt][3] (key policy)
2507
+ #
2508
+ # **Related operations:**
2509
+ #
2510
+ # * Decrypt
2511
+ #
2512
+ # * GenerateDataKey
2513
+ #
2514
+ # * GenerateDataKeyPair
2234
2515
  #
2235
2516
  #
2236
2517
  #
2237
2518
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2238
2519
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2520
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2239
2521
  #
2240
2522
  # @option params [required, String] :key_id
2241
2523
  # A unique identifier for the customer master key (CMK).
@@ -2259,7 +2541,7 @@ module Aws::KMS
2259
2541
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
2260
2542
  # To get the alias name and alias ARN, use ListAliases.
2261
2543
  #
2262
- # @option params [required, String, IO] :plaintext
2544
+ # @option params [required, String, StringIO, File] :plaintext
2263
2545
  # Data to be encrypted.
2264
2546
  #
2265
2547
  # @option params [Hash<String,String>] :encryption_context
@@ -2414,6 +2696,24 @@ module Aws::KMS
2414
2696
  # 2. Use the plaintext data key to decrypt data outside of AWS KMS,
2415
2697
  # then erase the plaintext data key from memory.
2416
2698
  #
2699
+ # **Cross-account use**\: Yes. To perform this operation with a CMK in a
2700
+ # different AWS account, specify the key ARN or alias ARN in the value
2701
+ # of the `KeyId` parameter.
2702
+ #
2703
+ # **Required permissions**\: [kms:GenerateDataKey][6] (key policy)
2704
+ #
2705
+ # **Related operations:**
2706
+ #
2707
+ # * Decrypt
2708
+ #
2709
+ # * Encrypt
2710
+ #
2711
+ # * GenerateDataKeyPair
2712
+ #
2713
+ # * GenerateDataKeyPairWithoutPlaintext
2714
+ #
2715
+ # * GenerateDataKeyWithoutPlaintext
2716
+ #
2417
2717
  #
2418
2718
  #
2419
2719
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
@@ -2421,6 +2721,7 @@ module Aws::KMS
2421
2721
  # [3]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
2422
2722
  # [4]: https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/
2423
2723
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
2724
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2424
2725
  #
2425
2726
  # @option params [required, String] :key_id
2426
2727
  # Identifies the symmetric CMK that encrypts the data key.
@@ -2582,10 +2883,29 @@ module Aws::KMS
2582
2883
  # state. For details, see [How Key State Affects Use of a Customer
2583
2884
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2584
2885
  #
2886
+ # **Cross-account use**\: Yes. To perform this operation with a CMK in a
2887
+ # different AWS account, specify the key ARN or alias ARN in the value
2888
+ # of the `KeyId` parameter.
2889
+ #
2890
+ # **Required permissions**\: [kms:GenerateDataKeyPair][3] (key policy)
2891
+ #
2892
+ # **Related operations:**
2893
+ #
2894
+ # * Decrypt
2895
+ #
2896
+ # * Encrypt
2897
+ #
2898
+ # * GenerateDataKey
2899
+ #
2900
+ # * GenerateDataKeyPairWithoutPlaintext
2901
+ #
2902
+ # * GenerateDataKeyWithoutPlaintext
2903
+ #
2585
2904
  #
2586
2905
  #
2587
2906
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2588
2907
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2908
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2589
2909
  #
2590
2910
  # @option params [Hash<String,String>] :encryption_context
2591
2911
  # Specifies the encryption context that will be used when encrypting the
@@ -2718,10 +3038,30 @@ module Aws::KMS
2718
3038
  # state. For details, see [How Key State Affects Use of a Customer
2719
3039
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2720
3040
  #
3041
+ # **Cross-account use**\: Yes. To perform this operation with a CMK in a
3042
+ # different AWS account, specify the key ARN or alias ARN in the value
3043
+ # of the `KeyId` parameter.
3044
+ #
3045
+ # **Required permissions**\:
3046
+ # [kms:GenerateDataKeyPairWithoutPlaintext][3] (key policy)
3047
+ #
3048
+ # **Related operations:**
3049
+ #
3050
+ # * Decrypt
3051
+ #
3052
+ # * Encrypt
3053
+ #
3054
+ # * GenerateDataKey
3055
+ #
3056
+ # * GenerateDataKeyPair
3057
+ #
3058
+ # * GenerateDataKeyWithoutPlaintext
3059
+ #
2721
3060
  #
2722
3061
  #
2723
3062
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2724
3063
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3064
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2725
3065
  #
2726
3066
  # @option params [Hash<String,String>] :encryption_context
2727
3067
  # Specifies the encryption context that will be used when encrypting the
@@ -2749,7 +3089,8 @@ module Aws::KMS
2749
3089
  #
2750
3090
  # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2751
3091
  # name, or alias ARN. When using an alias name, prefix it with
2752
- # `"alias/"`.
3092
+ # `"alias/"`. To specify a CMK in a different AWS account, you must use
3093
+ # the key ARN or alias ARN.
2753
3094
  #
2754
3095
  # For example:
2755
3096
  #
@@ -2862,10 +3203,30 @@ module Aws::KMS
2862
3203
  # state. For details, see [How Key State Affects Use of a Customer
2863
3204
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
2864
3205
  #
3206
+ # **Cross-account use**\: Yes. To perform this operation with a CMK in a
3207
+ # different AWS account, specify the key ARN or alias ARN in the value
3208
+ # of the `KeyId` parameter.
3209
+ #
3210
+ # **Required permissions**\: [kms:GenerateDataKeyWithoutPlaintext][3]
3211
+ # (key policy)
3212
+ #
3213
+ # **Related operations:**
3214
+ #
3215
+ # * Decrypt
3216
+ #
3217
+ # * Encrypt
3218
+ #
3219
+ # * GenerateDataKey
3220
+ #
3221
+ # * GenerateDataKeyPair
3222
+ #
3223
+ # * GenerateDataKeyPairWithoutPlaintext
3224
+ #
2865
3225
  #
2866
3226
  #
2867
3227
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2868
3228
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3229
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2869
3230
  #
2870
3231
  # @option params [required, String] :key_id
2871
3232
  # The identifier of the symmetric customer master key (CMK) that
@@ -2986,10 +3347,13 @@ module Aws::KMS
2986
3347
  # For more information about entropy and random number generation, see
2987
3348
  # the [AWS Key Management Service Cryptographic Details][2] whitepaper.
2988
3349
  #
3350
+ # **Required permissions**\: [kms:GenerateRandom][3] (IAM policy)
3351
+ #
2989
3352
  #
2990
3353
  #
2991
3354
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2992
3355
  # [2]: https://d0.awsstatic.com/whitepapers/KMS-Cryptographic-Details.pdf
3356
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2993
3357
  #
2994
3358
  # @option params [Integer] :number_of_bytes
2995
3359
  # The length of the byte string.
@@ -3042,7 +3406,17 @@ module Aws::KMS
3042
3406
  end
3043
3407
 
3044
3408
  # Gets a key policy attached to the specified customer master key (CMK).
3045
- # You cannot perform this operation on a CMK in a different AWS account.
3409
+ #
3410
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
3411
+ # in a different AWS account.
3412
+ #
3413
+ # **Required permissions**\: [kms:GetKeyPolicy][1] (key policy)
3414
+ #
3415
+ # **Related operations**\: PutKeyPolicy
3416
+ #
3417
+ #
3418
+ #
3419
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3046
3420
  #
3047
3421
  # @option params [required, String] :key_id
3048
3422
  # A unique identifier for the customer master key (CMK).
@@ -3122,14 +3496,24 @@ module Aws::KMS
3122
3496
  # you cancel the deletion, the original key rotation status is
3123
3497
  # restored.
3124
3498
  #
3125
- # To perform this operation on a CMK in a different AWS account, specify
3126
- # the key ARN in the value of the `KeyId` parameter.
3499
+ # **Cross-account use**\: Yes. To perform this operation on a CMK in a
3500
+ # different AWS account, specify the key ARN in the value of the `KeyId`
3501
+ # parameter.
3502
+ #
3503
+ # **Required permissions**\: [kms:GetKeyRotationStatus][4] (key policy)
3504
+ #
3505
+ # **Related operations:**
3506
+ #
3507
+ # * DisableKeyRotation
3508
+ #
3509
+ # * EnableKeyRotation
3127
3510
  #
3128
3511
  #
3129
3512
  #
3130
3513
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
3131
3514
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
3132
3515
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3516
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3133
3517
  #
3134
3518
  # @option params [required, String] :key_id
3135
3519
  # A unique identifier for the customer master key (CMK).
@@ -3210,10 +3594,23 @@ module Aws::KMS
3210
3594
  # state. For details, see [How Key State Affects Use of a Customer
3211
3595
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
3212
3596
  #
3597
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
3598
+ # in a different AWS account.
3599
+ #
3600
+ # **Required permissions**\: [kms:GetParametersForImport][3] (key
3601
+ # policy)
3602
+ #
3603
+ # **Related operations:**
3604
+ #
3605
+ # * ImportKeyMaterial
3606
+ #
3607
+ # * DeleteImportedKeyMaterial
3608
+ #
3213
3609
  #
3214
3610
  #
3215
3611
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
3216
3612
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3613
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3217
3614
  #
3218
3615
  # @option params [required, String] :key_id
3219
3616
  # The identifier of the symmetric CMK into which you will import key
@@ -3336,6 +3733,14 @@ module Aws::KMS
3336
3733
  # state. For details, see [How Key State Affects Use of a Customer
3337
3734
  # Master Key][7] in the *AWS Key Management Service Developer Guide*.
3338
3735
  #
3736
+ # **Cross-account use**\: Yes. To perform this operation with a CMK in a
3737
+ # different AWS account, specify the key ARN or alias ARN in the value
3738
+ # of the `KeyId` parameter.
3739
+ #
3740
+ # **Required permissions**\: [kms:GetPublicKey][8] (key policy)
3741
+ #
3742
+ # **Related operations**\: CreateKey
3743
+ #
3339
3744
  #
3340
3745
  #
3341
3746
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
@@ -3345,6 +3750,7 @@ module Aws::KMS
3345
3750
  # [5]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms
3346
3751
  # [6]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms
3347
3752
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3753
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3348
3754
  #
3349
3755
  # @option params [required, String] :key_id
3350
3756
  # Identifies the asymmetric CMK that includes the public key.
@@ -3467,12 +3873,24 @@ module Aws::KMS
3467
3873
  # state. For details, see [How Key State Affects Use of a Customer
3468
3874
  # Master Key][4] in the *AWS Key Management Service Developer Guide*.
3469
3875
  #
3876
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
3877
+ # in a different AWS account.
3878
+ #
3879
+ # **Required permissions**\: [kms:ImportKeyMaterial][5] (key policy)
3880
+ #
3881
+ # **Related operations:**
3882
+ #
3883
+ # * DeleteImportedKeyMaterial
3884
+ #
3885
+ # * GetParametersForImport
3886
+ #
3470
3887
  #
3471
3888
  #
3472
3889
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material
3473
3890
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
3474
3891
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview
3475
3892
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3893
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3476
3894
  #
3477
3895
  # @option params [required, String] :key_id
3478
3896
  # The identifier of the symmetric CMK that receives the imported key
@@ -3491,12 +3909,12 @@ module Aws::KMS
3491
3909
  #
3492
3910
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
3493
3911
  #
3494
- # @option params [required, String, IO] :import_token
3912
+ # @option params [required, String, StringIO, File] :import_token
3495
3913
  # The import token that you received in the response to a previous
3496
3914
  # GetParametersForImport request. It must be from the same response that
3497
3915
  # contained the public key that you used to encrypt the key material.
3498
3916
  #
3499
- # @option params [required, String, IO] :encrypted_key_material
3917
+ # @option params [required, String, StringIO, File] :encrypted_key_material
3500
3918
  # The encrypted key material to import. The key material must be
3501
3919
  # encrypted with the public wrapping key that GetParametersForImport
3502
3920
  # returned, using the wrapping algorithm that you specified in the same
@@ -3548,13 +3966,12 @@ module Aws::KMS
3548
3966
  req.send_request(options)
3549
3967
  end
3550
3968
 
3551
- # Gets a list of aliases in the caller's AWS account and region. You
3552
- # cannot list aliases in other accounts. For more information about
3553
- # aliases, see CreateAlias.
3969
+ # Gets a list of aliases in the caller's AWS account and region. For
3970
+ # more information about aliases, see CreateAlias.
3554
3971
  #
3555
- # By default, the ListAliases command returns all aliases in the account
3556
- # and region. To get only the aliases that point to a particular
3557
- # customer master key (CMK), use the `KeyId` parameter.
3972
+ # By default, the `ListAliases` operation returns all aliases in the
3973
+ # account and region. To get only the aliases associated with a
3974
+ # particular customer master key (CMK), use the `KeyId` parameter.
3558
3975
  #
3559
3976
  # The `ListAliases` response can include aliases that you created and
3560
3977
  # associated with your customer managed CMKs, and aliases that AWS
@@ -3568,18 +3985,45 @@ module Aws::KMS
3568
3985
  # including predefined aliases, do not count against your [AWS KMS
3569
3986
  # aliases quota][1].
3570
3987
  #
3988
+ # **Cross-account use**\: No. `ListAliases` does not return aliases in
3989
+ # other AWS accounts.
3990
+ #
3991
+ # **Required permissions**\: [kms:ListAliases][2] (IAM policy)
3992
+ #
3993
+ # For details, see [Controlling access to aliases][3] in the *AWS Key
3994
+ # Management Service Developer Guide*.
3995
+ #
3996
+ # **Related operations:**
3997
+ #
3998
+ # * CreateAlias
3999
+ #
4000
+ # * DeleteAlias
4001
+ #
4002
+ # * UpdateAlias
4003
+ #
3571
4004
  #
3572
4005
  #
3573
4006
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#aliases-limit
4007
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4008
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
3574
4009
  #
3575
4010
  # @option params [String] :key_id
3576
- # Lists only aliases that refer to the specified CMK. The value of this
3577
- # parameter can be the ID or Amazon Resource Name (ARN) of a CMK in the
3578
- # caller's account and region. You cannot use an alias name or alias
3579
- # ARN in this value.
4011
+ # Lists only aliases that are associated with the specified CMK. Enter a
4012
+ # CMK in your AWS account.
3580
4013
  #
3581
4014
  # This parameter is optional. If you omit it, `ListAliases` returns all
3582
- # aliases in the account and region.
4015
+ # aliases in the account and Region.
4016
+ #
4017
+ # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4018
+ #
4019
+ # For example:
4020
+ #
4021
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
4022
+ #
4023
+ # * Key ARN:
4024
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4025
+ #
4026
+ # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
3583
4027
  #
3584
4028
  # @option params [Integer] :limit
3585
4029
  # Use this parameter to specify the maximum number of items to return.
@@ -3671,6 +4115,8 @@ module Aws::KMS
3671
4115
  # resp.aliases[0].alias_name #=> String
3672
4116
  # resp.aliases[0].alias_arn #=> String
3673
4117
  # resp.aliases[0].target_key_id #=> String
4118
+ # resp.aliases[0].creation_date #=> Time
4119
+ # resp.aliases[0].last_updated_date #=> Time
3674
4120
  # resp.next_marker #=> String
3675
4121
  # resp.truncated #=> Boolean
3676
4122
  #
@@ -3685,8 +4131,8 @@ module Aws::KMS
3685
4131
 
3686
4132
  # Gets a list of all grants for the specified customer master key (CMK).
3687
4133
  #
3688
- # To perform this operation on a CMK in a different AWS account, specify
3689
- # the key ARN in the value of the `KeyId` parameter.
4134
+ # You must specify the CMK in all requests. You can filter the grant
4135
+ # list by grant ID or grantee principal.
3690
4136
  #
3691
4137
  # <note markdown="1"> The `GranteePrincipal` field in the `ListGrants` response usually
3692
4138
  # contains the user or role designated as the grantee principal in the
@@ -3697,9 +4143,26 @@ module Aws::KMS
3697
4143
  #
3698
4144
  # </note>
3699
4145
  #
4146
+ # **Cross-account use**\: Yes. To perform this operation on a CMK in a
4147
+ # different AWS account, specify the key ARN in the value of the `KeyId`
4148
+ # parameter.
4149
+ #
4150
+ # **Required permissions**\: [kms:ListGrants][2] (key policy)
4151
+ #
4152
+ # **Related operations:**
4153
+ #
4154
+ # * CreateGrant
4155
+ #
4156
+ # * ListRetirableGrants
4157
+ #
4158
+ # * RetireGrant
4159
+ #
4160
+ # * RevokeGrant
4161
+ #
3700
4162
  #
3701
4163
  #
3702
4164
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services
4165
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3703
4166
  #
3704
4167
  # @option params [Integer] :limit
3705
4168
  # Use this parameter to specify the maximum number of items to return.
@@ -3715,7 +4178,8 @@ module Aws::KMS
3715
4178
  # from the truncated response you just received.
3716
4179
  #
3717
4180
  # @option params [required, String] :key_id
3718
- # A unique identifier for the customer master key (CMK).
4181
+ # Returns only grants for the specified customer master key (CMK). This
4182
+ # parameter is required.
3719
4183
  #
3720
4184
  # Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To
3721
4185
  # specify a CMK in a different AWS account, you must use the key ARN.
@@ -3729,6 +4193,14 @@ module Aws::KMS
3729
4193
  #
3730
4194
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
3731
4195
  #
4196
+ # @option params [String] :grant_id
4197
+ # Returns only the grant with the specified grant ID. The grant ID
4198
+ # uniquely identifies the grant.
4199
+ #
4200
+ # @option params [String] :grantee_principal
4201
+ # Returns only grants where the specified principal is the grantee
4202
+ # principal for the grant.
4203
+ #
3732
4204
  # @return [Types::ListGrantsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3733
4205
  #
3734
4206
  # * {Types::ListGrantsResponse#grants #grants} => Array&lt;Types::GrantListEntry&gt;
@@ -3810,6 +4282,8 @@ module Aws::KMS
3810
4282
  # limit: 1,
3811
4283
  # marker: "MarkerType",
3812
4284
  # key_id: "KeyIdType", # required
4285
+ # grant_id: "GrantIdType",
4286
+ # grantee_principal: "PrincipalIdType",
3813
4287
  # })
3814
4288
  #
3815
4289
  # @example Response structure
@@ -3843,9 +4317,23 @@ module Aws::KMS
3843
4317
  # Gets the names of the key policies that are attached to a customer
3844
4318
  # master key (CMK). This operation is designed to get policy names that
3845
4319
  # you can use in a GetKeyPolicy operation. However, the only valid
3846
- # policy name is `default`. You cannot perform this operation on a CMK
4320
+ # policy name is `default`.
4321
+ #
4322
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
3847
4323
  # in a different AWS account.
3848
4324
  #
4325
+ # **Required permissions**\: [kms:ListKeyPolicies][1] (key policy)
4326
+ #
4327
+ # **Related operations:**
4328
+ #
4329
+ # * GetKeyPolicy
4330
+ #
4331
+ # * PutKeyPolicy
4332
+ #
4333
+ #
4334
+ #
4335
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4336
+ #
3849
4337
  # @option params [required, String] :key_id
3850
4338
  # A unique identifier for the customer master key (CMK).
3851
4339
  #
@@ -3928,6 +4416,25 @@ module Aws::KMS
3928
4416
  # Gets a list of all customer master keys (CMKs) in the caller's AWS
3929
4417
  # account and Region.
3930
4418
  #
4419
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
4420
+ # in a different AWS account.
4421
+ #
4422
+ # **Required permissions**\: [kms:ListKeys][1] (IAM policy)
4423
+ #
4424
+ # **Related operations:**
4425
+ #
4426
+ # * CreateKey
4427
+ #
4428
+ # * DescribeKey
4429
+ #
4430
+ # * ListAliases
4431
+ #
4432
+ # * ListResourceTags
4433
+ #
4434
+ #
4435
+ #
4436
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4437
+ #
3931
4438
  # @option params [Integer] :limit
3932
4439
  # Use this parameter to specify the maximum number of items to return.
3933
4440
  # When this value is present, AWS KMS does not return more than the
@@ -4017,10 +4524,29 @@ module Aws::KMS
4017
4524
  req.send_request(options)
4018
4525
  end
4019
4526
 
4020
- # Returns a list of all tags for the specified customer master key
4021
- # (CMK).
4527
+ # Returns all tags on the specified customer master key (CMK).
4528
+ #
4529
+ # For general information about tags, including the format and syntax,
4530
+ # see [Tagging AWS resources][1] in the *Amazon Web Services General
4531
+ # Reference*. For information about using tags in AWS KMS, see [Tagging
4532
+ # keys][2].
4533
+ #
4534
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
4535
+ # in a different AWS account.
4536
+ #
4537
+ # **Required permissions**\: [kms:ListResourceTags][3] (key policy)
4538
+ #
4539
+ # **Related operations:**
4540
+ #
4541
+ # * TagResource
4542
+ #
4543
+ # * UntagResource
4544
+ #
4545
+ #
4022
4546
  #
4023
- # You cannot perform this operation on a CMK in a different AWS account.
4547
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
4548
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
4549
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4024
4550
  #
4025
4551
  # @option params [required, String] :key_id
4026
4552
  # A unique identifier for the customer master key (CMK).
@@ -4111,11 +4637,37 @@ module Aws::KMS
4111
4637
  req.send_request(options)
4112
4638
  end
4113
4639
 
4114
- # Returns a list of all grants for which the grant's
4115
- # `RetiringPrincipal` matches the one specified.
4640
+ # Returns all grants in which the specified principal is the
4641
+ # `RetiringPrincipal` in the grant.
4116
4642
  #
4117
- # A typical use is to list all grants that you are able to retire. To
4118
- # retire a grant, use RetireGrant.
4643
+ # You can specify any principal in your AWS account. The grants that are
4644
+ # returned include grants for CMKs in your AWS account and other AWS
4645
+ # accounts.
4646
+ #
4647
+ # You might use this operation to determine which grants you may retire.
4648
+ # To retire a grant, use the RetireGrant operation.
4649
+ #
4650
+ # **Cross-account use**\: You must specify a principal in your AWS
4651
+ # account. However, this operation can return grants in any AWS account.
4652
+ # You do not need `kms:ListRetirableGrants` permission (or any other
4653
+ # additional permission) in any AWS account other than your own.
4654
+ #
4655
+ # **Required permissions**\: [kms:ListRetirableGrants][1] (IAM policy)
4656
+ # in your AWS account.
4657
+ #
4658
+ # **Related operations:**
4659
+ #
4660
+ # * CreateGrant
4661
+ #
4662
+ # * ListGrants
4663
+ #
4664
+ # * RetireGrant
4665
+ #
4666
+ # * RevokeGrant
4667
+ #
4668
+ #
4669
+ #
4670
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4119
4671
  #
4120
4672
  # @option params [Integer] :limit
4121
4673
  # Use this parameter to specify the maximum number of items to return.
@@ -4131,7 +4683,8 @@ module Aws::KMS
4131
4683
  # from the truncated response you just received.
4132
4684
  #
4133
4685
  # @option params [required, String] :retiring_principal
4134
- # The retiring principal for which to list grants.
4686
+ # The retiring principal for which to list grants. Enter a principal in
4687
+ # your AWS account.
4135
4688
  #
4136
4689
  # To specify the retiring principal, use the [Amazon Resource Name
4137
4690
  # (ARN)][1] of an AWS principal. Valid AWS principals include AWS
@@ -4215,15 +4768,28 @@ module Aws::KMS
4215
4768
  req.send_request(options)
4216
4769
  end
4217
4770
 
4218
- # Attaches a key policy to the specified customer master key (CMK). You
4219
- # cannot perform this operation on a CMK in a different AWS account.
4771
+ # Attaches a key policy to the specified customer master key (CMK).
4220
4772
  #
4221
4773
  # For more information about key policies, see [Key Policies][1] in the
4222
- # *AWS Key Management Service Developer Guide*.
4774
+ # *AWS Key Management Service Developer Guide*. For help writing and
4775
+ # formatting a JSON policy document, see the [IAM JSON Policy
4776
+ # Reference][2] in the <i> <i>IAM User Guide</i> </i>. For examples of
4777
+ # adding a key policy in multiple programming languages, see [Setting a
4778
+ # key policy][3] in the *AWS Key Management Service Developer Guide*.
4779
+ #
4780
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
4781
+ # in a different AWS account.
4782
+ #
4783
+ # **Required permissions**\: [kms:PutKeyPolicy][4] (key policy)
4784
+ #
4785
+ # **Related operations**\: GetKeyPolicy
4223
4786
  #
4224
4787
  #
4225
4788
  #
4226
4789
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4790
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
4791
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-key-policies.html#put-policy
4792
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4227
4793
  #
4228
4794
  # @option params [required, String] :key_id
4229
4795
  # A unique identifier for the customer master key (CMK).
@@ -4346,21 +4912,27 @@ module Aws::KMS
4346
4912
  # operation.
4347
4913
  #
4348
4914
  # * If your ciphertext was encrypted under an asymmetric CMK, you must
4349
- # identify the *source CMK*, that is, the CMK that encrypted the
4350
- # ciphertext. You must also supply the encryption algorithm that was
4351
- # used. This information is required to decrypt the data.
4352
- #
4353
- # * It is optional, but you can specify a source CMK even when the
4354
- # ciphertext was encrypted under a symmetric CMK. This ensures that
4355
- # the ciphertext is decrypted only by using a particular CMK. If the
4356
- # CMK that you specify cannot decrypt the ciphertext, the `ReEncrypt`
4357
- # operation fails.
4358
- #
4359
- # * To reencrypt the data, you must specify the *destination CMK*, that
4360
- # is, the CMK that re-encrypts the data after it is decrypted. You can
4361
- # select a symmetric or asymmetric CMK. If the destination CMK is an
4362
- # asymmetric CMK, you must also provide the encryption algorithm. The
4363
- # algorithm that you choose must be compatible with the CMK.
4915
+ # use the `SourceKeyId` parameter to identify the CMK that encrypted
4916
+ # the ciphertext. You must also supply the encryption algorithm that
4917
+ # was used. This information is required to decrypt the data.
4918
+ #
4919
+ # * If your ciphertext was encrypted under a symmetric CMK, the
4920
+ # `SourceKeyId` parameter is optional. AWS KMS can get this
4921
+ # information from metadata that it adds to the symmetric ciphertext
4922
+ # blob. This feature adds durability to your implementation by
4923
+ # ensuring that authorized users can decrypt ciphertext decades after
4924
+ # it was encrypted, even if they've lost track of the CMK ID.
4925
+ # However, specifying the source CMK is always recommended as a best
4926
+ # practice. When you use the `SourceKeyId` parameter to specify a CMK,
4927
+ # AWS KMS uses only the CMK you specify. If the ciphertext was
4928
+ # encrypted under a different CMK, the `ReEncrypt` operation fails.
4929
+ # This practice ensures that you use the CMK that you intend.
4930
+ #
4931
+ # * To reencrypt the data, you must use the `DestinationKeyId` parameter
4932
+ # specify the CMK that re-encrypts the data after it is decrypted. You
4933
+ # can select a symmetric or asymmetric CMK. If the destination CMK is
4934
+ # an asymmetric CMK, you must also provide the encryption algorithm.
4935
+ # The algorithm that you choose must be compatible with the CMK.
4364
4936
  #
4365
4937
  # When you use an asymmetric CMK to encrypt or reencrypt data, be sure
4366
4938
  # to record the CMK and encryption algorithm that you choose. You will
@@ -4374,23 +4946,36 @@ module Aws::KMS
4374
4946
  # ciphertext generated with asymmetric keys. The standard format for
4375
4947
  # asymmetric key ciphertext does not include configurable fields.
4376
4948
  #
4377
- # Unlike other AWS KMS API operations, `ReEncrypt` callers must have two
4378
- # permissions:
4949
+ # The CMK that you use for this operation must be in a compatible key
4950
+ # state. For details, see [How Key State Affects Use of a Customer
4951
+ # Master Key][6] in the *AWS Key Management Service Developer Guide*.
4952
+ #
4953
+ # **Cross-account use**\: Yes. The source CMK and destination CMK can be
4954
+ # in different AWS accounts. Either or both CMKs can be in a different
4955
+ # account than the caller.
4956
+ #
4957
+ # **Required permissions**\:
4379
4958
  #
4380
- # * `kms:ReEncryptFrom` permission on the source CMK
4959
+ # * [kms:ReEncryptFrom][7] permission on the source CMK (key policy)
4381
4960
  #
4382
- # * `kms:ReEncryptTo` permission on the destination CMK
4961
+ # * [kms:ReEncryptTo][7] permission on the destination CMK (key policy)
4383
4962
  #
4384
4963
  # To permit reencryption from or to a CMK, include the
4385
- # `"kms:ReEncrypt*"` permission in your [key policy][6]. This permission
4964
+ # `"kms:ReEncrypt*"` permission in your [key policy][8]. This permission
4386
4965
  # is automatically included in the key policy when you use the console
4387
4966
  # to create a CMK. But you must include it manually when you create a
4388
4967
  # CMK programmatically or when you use the PutKeyPolicy operation to set
4389
4968
  # a key policy.
4390
4969
  #
4391
- # The CMK that you use for this operation must be in a compatible key
4392
- # state. For details, see [How Key State Affects Use of a Customer
4393
- # Master Key][7] in the *AWS Key Management Service Developer Guide*.
4970
+ # **Related operations:**
4971
+ #
4972
+ # * Decrypt
4973
+ #
4974
+ # * Encrypt
4975
+ #
4976
+ # * GenerateDataKey
4977
+ #
4978
+ # * GenerateDataKeyPair
4394
4979
  #
4395
4980
  #
4396
4981
  #
@@ -4399,10 +4984,11 @@ module Aws::KMS
4399
4984
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks
4400
4985
  # [4]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
4401
4986
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
4402
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4403
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4987
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4988
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4989
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4404
4990
  #
4405
- # @option params [required, String, IO] :ciphertext_blob
4991
+ # @option params [required, String, StringIO, File] :ciphertext_blob
4406
4992
  # Ciphertext of the data to reencrypt.
4407
4993
  #
4408
4994
  # @option params [Hash<String,String>] :source_encryption_context
@@ -4425,23 +5011,20 @@ module Aws::KMS
4425
5011
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4426
5012
  #
4427
5013
  # @option params [String] :source_key_id
4428
- # A unique identifier for the CMK that is used to decrypt the ciphertext
4429
- # before it reencrypts it using the destination CMK.
5014
+ # Specifies the customer master key (CMK) that AWS KMS will use to
5015
+ # decrypt the ciphertext before it is re-encrypted. Enter a key ID of
5016
+ # the CMK that was used to encrypt the ciphertext.
4430
5017
  #
4431
5018
  # This parameter is required only when the ciphertext was encrypted
4432
- # under an asymmetric CMK. Otherwise, AWS KMS uses the metadata that it
4433
- # adds to the ciphertext blob to determine which CMK was used to encrypt
4434
- # the ciphertext. However, you can use this parameter to ensure that a
4435
- # particular CMK (of any kind) is used to decrypt the ciphertext before
4436
- # it is reencrypted.
4437
- #
4438
- # If you specify a `KeyId` value, the decrypt part of the `ReEncrypt`
4439
- # operation succeeds only if the specified CMK was used to encrypt the
4440
- # ciphertext.
5019
+ # under an asymmetric CMK. If you used a symmetric CMK, AWS KMS can get
5020
+ # the CMK from metadata that it adds to the symmetric ciphertext blob.
5021
+ # However, it is always recommended as a best practice. This practice
5022
+ # ensures that you use the CMK that you intend.
4441
5023
  #
4442
5024
  # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
4443
5025
  # name, or alias ARN. When using an alias name, prefix it with
4444
- # `"alias/"`.
5026
+ # `"alias/"`. To specify a CMK in a different AWS account, you must use
5027
+ # the key ARN or alias ARN.
4445
5028
  #
4446
5029
  # For example:
4447
5030
  #
@@ -4549,14 +5132,14 @@ module Aws::KMS
4549
5132
  #
4550
5133
  # resp = client.re_encrypt({
4551
5134
  # ciphertext_blob: "<binary data>", # The data to reencrypt.
4552
- # destination_key_id: "0987dcba-09fe-87dc-65ba-ab0987654321", # The identifier of the CMK to use to reencrypt the data. You can use the key ID or Amazon Resource Name (ARN) of the CMK, or the name or ARN of an alias that refers to the CMK.
5135
+ # destination_key_id: "0987dcba-09fe-87dc-65ba-ab0987654321", # The identifier of the CMK to use to reencrypt the data. You can use any valid key identifier.
4553
5136
  # })
4554
5137
  #
4555
5138
  # resp.to_h outputs the following:
4556
5139
  # {
4557
5140
  # ciphertext_blob: "<binary data>", # The reencrypted data.
4558
5141
  # key_id: "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The ARN of the CMK that was used to reencrypt the data.
4559
- # source_key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the CMK that was used to originally encrypt the data.
5142
+ # source_key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the CMK that was originally used to encrypt the data.
4560
5143
  # }
4561
5144
  #
4562
5145
  # @example Request syntax with placeholder values
@@ -4611,6 +5194,28 @@ module Aws::KMS
4611
5194
  # base64-encoded string. A grant ID is a 64 character unique identifier
4612
5195
  # of a grant. The CreateGrant operation returns both.
4613
5196
  #
5197
+ # **Cross-account use**\: Yes. You can retire a grant on a CMK in a
5198
+ # different AWS account.
5199
+ #
5200
+ # **Required permissions:**\: Permission to retire a grant is specified
5201
+ # in the grant. You cannot control access to this operation in a policy.
5202
+ # For more information, see [Using grants][1] in the *AWS Key Management
5203
+ # Service Developer Guide*.
5204
+ #
5205
+ # **Related operations:**
5206
+ #
5207
+ # * CreateGrant
5208
+ #
5209
+ # * ListGrants
5210
+ #
5211
+ # * ListRetirableGrants
5212
+ #
5213
+ # * RevokeGrant
5214
+ #
5215
+ #
5216
+ #
5217
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
5218
+ #
4614
5219
  # @option params [String] :grant_token
4615
5220
  # Token that identifies the grant to be retired.
4616
5221
  #
@@ -4662,8 +5267,25 @@ module Aws::KMS
4662
5267
  # (CMK). You can revoke a grant to actively deny operations that depend
4663
5268
  # on it.
4664
5269
  #
4665
- # To perform this operation on a CMK in a different AWS account, specify
4666
- # the key ARN in the value of the `KeyId` parameter.
5270
+ # **Cross-account use**\: Yes. To perform this operation on a CMK in a
5271
+ # different AWS account, specify the key ARN in the value of the `KeyId`
5272
+ # parameter.
5273
+ #
5274
+ # **Required permissions**\: [kms:RevokeGrant][1] (key policy)
5275
+ #
5276
+ # **Related operations:**
5277
+ #
5278
+ # * CreateGrant
5279
+ #
5280
+ # * ListGrants
5281
+ #
5282
+ # * ListRetirableGrants
5283
+ #
5284
+ # * RetireGrant
5285
+ #
5286
+ #
5287
+ #
5288
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4667
5289
  #
4668
5290
  # @option params [required, String] :key_id
4669
5291
  # A unique identifier for the customer master key associated with the
@@ -4733,8 +5355,6 @@ module Aws::KMS
4733
5355
  # manually [delete the orphaned key material][2] from the cluster and
4734
5356
  # its backups.
4735
5357
  #
4736
- # You cannot perform this operation on a CMK in a different AWS account.
4737
- #
4738
5358
  # For more information about scheduling a CMK for deletion, see
4739
5359
  # [Deleting Customer Master Keys][3] in the *AWS Key Management Service
4740
5360
  # Developer Guide*.
@@ -4743,12 +5363,24 @@ module Aws::KMS
4743
5363
  # state. For details, see [How Key State Affects Use of a Customer
4744
5364
  # Master Key][4] in the *AWS Key Management Service Developer Guide*.
4745
5365
  #
5366
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
5367
+ # in a different AWS account.
5368
+ #
5369
+ # **Required permissions**\: [kms:ScheduleKeyDeletion][5] (key policy)
5370
+ #
5371
+ # **Related operations**
5372
+ #
5373
+ # * CancelKeyDeletion
5374
+ #
5375
+ # * DisableKey
5376
+ #
4746
5377
  #
4747
5378
  #
4748
5379
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4749
5380
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
4750
5381
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html
4751
5382
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5383
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4752
5384
  #
4753
5385
  # @option params [required, String] :key_id
4754
5386
  # The unique identifier of the customer master key (CMK) to delete.
@@ -4855,11 +5487,20 @@ module Aws::KMS
4855
5487
  # state. For details, see [How Key State Affects Use of a Customer
4856
5488
  # Master Key][3] in the *AWS Key Management Service Developer Guide*.
4857
5489
  #
5490
+ # **Cross-account use**\: Yes. To perform this operation with a CMK in a
5491
+ # different AWS account, specify the key ARN or alias ARN in the value
5492
+ # of the `KeyId` parameter.
5493
+ #
5494
+ # **Required permissions**\: [kms:Sign][4] (key policy)
5495
+ #
5496
+ # **Related operations**\: Verify
5497
+ #
4858
5498
  #
4859
5499
  #
4860
5500
  # [1]: https://en.wikipedia.org/wiki/Digital_signature
4861
5501
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
4862
5502
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5503
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4863
5504
  #
4864
5505
  # @option params [required, String] :key_id
4865
5506
  # Identifies an asymmetric CMK. AWS KMS uses the private key in the
@@ -4886,7 +5527,7 @@ module Aws::KMS
4886
5527
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
4887
5528
  # To get the alias name and alias ARN, use ListAliases.
4888
5529
  #
4889
- # @option params [required, String, IO] :message
5530
+ # @option params [required, String, StringIO, File] :message
4890
5531
  # Specifies the message or message digest to sign. Messages can be
4891
5532
  # 0-4096 bytes. To sign a larger message, provide the message digest.
4892
5533
  #
@@ -4945,31 +5586,50 @@ module Aws::KMS
4945
5586
  req.send_request(options)
4946
5587
  end
4947
5588
 
4948
- # Adds or edits tags for a customer master key (CMK). You cannot perform
4949
- # this operation on a CMK in a different AWS account.
5589
+ # Adds or edits tags on a [customer managed CMK][1].
5590
+ #
5591
+ # Each tag consists of a tag key and a tag value, both of which are
5592
+ # case-sensitive strings. The tag value can be an empty (null) string.
4950
5593
  #
4951
- # Each tag consists of a tag key and a tag value. Tag keys and tag
4952
- # values are both required, but tag values can be empty (null) strings.
5594
+ # To add a tag, specify a new tag key and a tag value. To edit a tag,
5595
+ # specify an existing tag key and a new tag value.
4953
5596
  #
4954
- # You can only use a tag key once for each CMK. If you use the tag key
4955
- # again, AWS KMS replaces the current tag value with the specified
4956
- # value.
5597
+ # You can use this operation to tag a [customer managed CMK][1], but you
5598
+ # cannot tag an [AWS managed CMK][2], an [AWS owned CMK][3], or an
5599
+ # alias.
4957
5600
  #
4958
- # For information about the rules that apply to tag keys and tag values,
4959
- # see [User-Defined Tag Restrictions][1] in the *AWS Billing and Cost
4960
- # Management User Guide*.
5601
+ # For general information about tags, including the format and syntax,
5602
+ # see [Tagging AWS resources][4] in the *Amazon Web Services General
5603
+ # Reference*. For information about using tags in AWS KMS, see [Tagging
5604
+ # keys][5].
4961
5605
  #
4962
5606
  # The CMK that you use for this operation must be in a compatible key
4963
5607
  # state. For details, see [How Key State Affects Use of a Customer
4964
- # Master Key][2] in the *AWS Key Management Service Developer Guide*.
5608
+ # Master Key][6] in the *AWS Key Management Service Developer Guide*.
4965
5609
  #
5610
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
5611
+ # in a different AWS account.
4966
5612
  #
5613
+ # **Required permissions**\: [kms:TagResource][7] (key policy)
4967
5614
  #
4968
- # [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html
4969
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5615
+ # **Related operations**
5616
+ #
5617
+ # * UntagResource
5618
+ #
5619
+ # * ListResourceTags
5620
+ #
5621
+ #
5622
+ #
5623
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
5624
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
5625
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
5626
+ # [4]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
5627
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
5628
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5629
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4970
5630
  #
4971
5631
  # @option params [required, String] :key_id
4972
- # A unique identifier for the CMK you are tagging.
5632
+ # Identifies a customer managed CMK in the account and Region.
4973
5633
  #
4974
5634
  # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4975
5635
  #
@@ -4983,7 +5643,14 @@ module Aws::KMS
4983
5643
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
4984
5644
  #
4985
5645
  # @option params [required, Array<Types::Tag>] :tags
4986
- # One or more tags. Each tag consists of a tag key and a tag value.
5646
+ # One or more tags.
5647
+ #
5648
+ # Each tag consists of a tag key and a tag value. The tag value can be
5649
+ # an empty (null) string.
5650
+ #
5651
+ # You cannot have more than one tag on a CMK with the same tag key. If
5652
+ # you specify an existing tag key with a different tag value, AWS KMS
5653
+ # replaces the current tag value with the specified one.
4987
5654
  #
4988
5655
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4989
5656
  #
@@ -5023,23 +5690,44 @@ module Aws::KMS
5023
5690
  req.send_request(options)
5024
5691
  end
5025
5692
 
5026
- # Removes the specified tags from the specified customer master key
5027
- # (CMK). You cannot perform this operation on a CMK in a different AWS
5028
- # account.
5693
+ # Deletes tags from a [customer managed CMK][1]. To delete a tag,
5694
+ # specify the tag key and the CMK.
5029
5695
  #
5030
- # To remove a tag, specify the tag key. To change the tag value of an
5031
- # existing tag key, use TagResource.
5696
+ # When it succeeds, the `UntagResource` operation doesn't return any
5697
+ # output. Also, if the specified tag key isn't found on the CMK, it
5698
+ # doesn't throw an exception or return a response. To confirm that the
5699
+ # operation worked, use the ListResourceTags operation.
5700
+ #
5701
+ # For general information about tags, including the format and syntax,
5702
+ # see [Tagging AWS resources][2] in the *Amazon Web Services General
5703
+ # Reference*. For information about using tags in AWS KMS, see [Tagging
5704
+ # keys][3].
5032
5705
  #
5033
5706
  # The CMK that you use for this operation must be in a compatible key
5034
5707
  # state. For details, see [How Key State Affects Use of a Customer
5035
- # Master Key][1] in the *AWS Key Management Service Developer Guide*.
5708
+ # Master Key][4] in the *AWS Key Management Service Developer Guide*.
5036
5709
  #
5710
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
5711
+ # in a different AWS account.
5037
5712
  #
5713
+ # **Required permissions**\: [kms:UntagResource][5] (key policy)
5038
5714
  #
5039
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5715
+ # **Related operations**
5716
+ #
5717
+ # * TagResource
5718
+ #
5719
+ # * ListResourceTags
5720
+ #
5721
+ #
5722
+ #
5723
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
5724
+ # [2]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
5725
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
5726
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5727
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5040
5728
  #
5041
5729
  # @option params [required, String] :key_id
5042
- # A unique identifier for the CMK from which you are removing tags.
5730
+ # Identifies the CMK from which you are removing tags.
5043
5731
  #
5044
5732
  # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
5045
5733
  #
@@ -5089,8 +5777,7 @@ module Aws::KMS
5089
5777
  # Associates an existing AWS KMS alias with a different customer master
5090
5778
  # key (CMK). Each alias is associated with only one CMK at a time,
5091
5779
  # although a CMK can have multiple aliases. The alias and the CMK must
5092
- # be in the same AWS account and region. You cannot perform this
5093
- # operation on an alias in a different AWS account.
5780
+ # be in the same AWS account and region.
5094
5781
  #
5095
5782
  # The current and new CMK must be the same type (both symmetric or both
5096
5783
  # asymmetric), and they must have the same key usage (`ENCRYPT_DECRYPT`
@@ -5113,9 +5800,33 @@ module Aws::KMS
5113
5800
  # state. For details, see [How Key State Affects Use of a Customer
5114
5801
  # Master Key][1] in the *AWS Key Management Service Developer Guide*.
5115
5802
  #
5803
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
5804
+ # in a different AWS account.
5805
+ #
5806
+ # **Required permissions**
5807
+ #
5808
+ # * [kms:UpdateAlias][2] on the alias (IAM policy).
5809
+ #
5810
+ # * [kms:UpdateAlias][2] on the current CMK (key policy).
5811
+ #
5812
+ # * [kms:UpdateAlias][2] on the new CMK (key policy).
5813
+ #
5814
+ # For details, see [Controlling access to aliases][3] in the *AWS Key
5815
+ # Management Service Developer Guide*.
5816
+ #
5817
+ # **Related operations:**
5818
+ #
5819
+ # * CreateAlias
5820
+ #
5821
+ # * DeleteAlias
5822
+ #
5823
+ # * ListAliases
5824
+ #
5116
5825
  #
5117
5826
  #
5118
5827
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5828
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5829
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
5119
5830
  #
5120
5831
  # @option params [required, String] :alias_name
5121
5832
  # Identifies the alias that is changing its CMK. This value must begin
@@ -5124,8 +5835,9 @@ module Aws::KMS
5124
5835
  # name.
5125
5836
  #
5126
5837
  # @option params [required, String] :target_key_id
5127
- # Identifies the CMK to associate with the alias. When the update
5128
- # operation completes, the alias will point to this CMK.
5838
+ # Identifies the [customer managed CMK][1] to associate with the alias.
5839
+ # You don't have permission to associate an alias with an [AWS managed
5840
+ # CMK][2].
5129
5841
  #
5130
5842
  # The CMK must be in the same AWS account and Region as the alias. Also,
5131
5843
  # the new target CMK must be the same type as the current target CMK
@@ -5146,6 +5858,11 @@ module Aws::KMS
5146
5858
  # To verify that the alias is mapped to the correct CMK, use
5147
5859
  # ListAliases.
5148
5860
  #
5861
+ #
5862
+ #
5863
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
5864
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
5865
+ #
5149
5866
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
5150
5867
  #
5151
5868
  #
@@ -5215,11 +5932,29 @@ module Aws::KMS
5215
5932
  # AWS KMS, which combines the convenience and extensive integration of
5216
5933
  # AWS KMS with the isolation and control of a single-tenant key store.
5217
5934
  #
5935
+ # **Cross-account use**\: No. You cannot perform this operation on a
5936
+ # custom key store in a different AWS account.
5937
+ #
5938
+ # **Required permissions**\: [kms:UpdateCustomKeyStore][4] (IAM policy)
5939
+ #
5940
+ # **Related operations:**
5941
+ #
5942
+ # * ConnectCustomKeyStore
5943
+ #
5944
+ # * CreateCustomKeyStore
5945
+ #
5946
+ # * DeleteCustomKeyStore
5947
+ #
5948
+ # * DescribeCustomKeyStores
5949
+ #
5950
+ # * DisconnectCustomKeyStore
5951
+ #
5218
5952
  #
5219
5953
  #
5220
5954
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser
5221
5955
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-password
5222
5956
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
5957
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5223
5958
  #
5224
5959
  # @option params [required, String] :custom_key_store_id
5225
5960
  # Identifies the custom key store that you want to update. Enter the ID
@@ -5279,15 +6014,25 @@ module Aws::KMS
5279
6014
  # Updates the description of a customer master key (CMK). To see the
5280
6015
  # description of a CMK, use DescribeKey.
5281
6016
  #
5282
- # You cannot perform this operation on a CMK in a different AWS account.
5283
- #
5284
6017
  # The CMK that you use for this operation must be in a compatible key
5285
6018
  # state. For details, see [How Key State Affects Use of a Customer
5286
6019
  # Master Key][1] in the *AWS Key Management Service Developer Guide*.
5287
6020
  #
6021
+ # **Cross-account use**\: No. You cannot perform this operation on a CMK
6022
+ # in a different AWS account.
6023
+ #
6024
+ # **Required permissions**\: [kms:UpdateKeyDescription][2] (key policy)
6025
+ #
6026
+ # **Related operations**
6027
+ #
6028
+ # * CreateKey
6029
+ #
6030
+ # * DescribeKey
6031
+ #
5288
6032
  #
5289
6033
  #
5290
6034
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6035
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5291
6036
  #
5292
6037
  # @option params [required, String] :key_id
5293
6038
  # A unique identifier for the customer master key (CMK).
@@ -5369,10 +6114,19 @@ module Aws::KMS
5369
6114
  # state. For details, see [How Key State Affects Use of a Customer
5370
6115
  # Master Key][2] in the *AWS Key Management Service Developer Guide*.
5371
6116
  #
6117
+ # **Cross-account use**\: Yes. To perform this operation with a CMK in a
6118
+ # different AWS account, specify the key ARN or alias ARN in the value
6119
+ # of the `KeyId` parameter.
6120
+ #
6121
+ # **Required permissions**\: [kms:Verify][3] (key policy)
6122
+ #
6123
+ # **Related operations**\: Sign
6124
+ #
5372
6125
  #
5373
6126
  #
5374
6127
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
5375
6128
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6129
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5376
6130
  #
5377
6131
  # @option params [required, String] :key_id
5378
6132
  # Identifies the asymmetric CMK that will be used to verify the
@@ -5399,7 +6153,7 @@ module Aws::KMS
5399
6153
  # To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
5400
6154
  # To get the alias name and alias ARN, use ListAliases.
5401
6155
  #
5402
- # @option params [required, String, IO] :message
6156
+ # @option params [required, String, StringIO, File] :message
5403
6157
  # Specifies the message that was signed. You can submit a raw message of
5404
6158
  # up to 4096 bytes, or a hash digest of the message. If you submit a
5405
6159
  # digest, use the `MessageType` parameter with a value of `DIGEST`.
@@ -5417,7 +6171,7 @@ module Aws::KMS
5417
6171
  # is a message digest. If you use the `DIGEST` value with a raw message,
5418
6172
  # the security of the verification operation can be compromised.
5419
6173
  #
5420
- # @option params [required, String, IO] :signature
6174
+ # @option params [required, String, StringIO, File] :signature
5421
6175
  # The signature that the `Sign` operation generated.
5422
6176
  #
5423
6177
  # @option params [required, String] :signing_algorithm
@@ -5479,7 +6233,7 @@ module Aws::KMS
5479
6233
  params: params,
5480
6234
  config: config)
5481
6235
  context[:gem_name] = 'aws-sdk-kms'
5482
- context[:gem_version] = '1.36.0'
6236
+ context[:gem_version] = '1.41.0'
5483
6237
  Seahorse::Client::Request.new(handlers, context)
5484
6238
  end
5485
6239