libZSservicesZSamazonka-kmsZSamazonka-kms
Copyright(c) 2013-2021 Brendan Hay
LicenseMozilla Public License, v. 2.0.
MaintainerBrendan Hay <brendan.g.hay+amazonka@gmail.com>
Stabilityauto-generated
Portabilitynon-portable (GHC extensions)
Safe HaskellNone

Amazonka.KMS.PutKeyPolicy

Description

Attaches a key policy to the specified KMS key.

For more information about key policies, see Key Policies in the Key Management Service Developer Guide. For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the /Identity and Access Management User Guide/ . For examples of adding a key policy in multiple programming languages, see Setting a key policy in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:PutKeyPolicy (key policy)

Related operations: GetKeyPolicy

Synopsis

Creating a Request

data PutKeyPolicy Source #

See: newPutKeyPolicy smart constructor.

Constructors

PutKeyPolicy' 

Fields

  • bypassPolicyLockoutSafetyCheck :: Maybe Bool

    A flag to indicate whether to bypass the key policy lockout safety check.

    Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.

    For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

    Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

    The default value is false.

  • keyId :: Text

    Sets the key policy on the specified KMS key.

    Specify the key ID or key ARN of the KMS key.

    For example:

    • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
    • Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

    To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

  • policyName :: Text

    The name of the key policy. The only valid value is default.

  • policy :: Text

    The key policy to attach to the KMS key.

    The key policy must meet the following criteria:

    • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must allow the principal that is making the PutKeyPolicy request to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide.
    • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the /Amazon Web Services Identity and Access Management User Guide/.

    The key policy cannot exceed 32 kilobytes (32768 bytes). For more information, see Resource Quotas in the Key Management Service Developer Guide.

Instances

Instances details
Eq PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

Read PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

Show PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

Generic PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

Associated Types

type Rep PutKeyPolicy :: Type -> Type #

NFData PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

Methods

rnf :: PutKeyPolicy -> () #

Hashable PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

ToJSON PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

AWSRequest PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

Associated Types

type AWSResponse PutKeyPolicy #

ToHeaders PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

ToPath PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

ToQuery PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

type Rep PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

type Rep PutKeyPolicy = D1 ('MetaData "PutKeyPolicy" "Amazonka.KMS.PutKeyPolicy" "libZSservicesZSamazonka-kmsZSamazonka-kms" 'False) (C1 ('MetaCons "PutKeyPolicy'" 'PrefixI 'True) ((S1 ('MetaSel ('Just "bypassPolicyLockoutSafetyCheck") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "keyId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "policyName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "policy") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text))))
type AWSResponse PutKeyPolicy Source # 
Instance details

Defined in Amazonka.KMS.PutKeyPolicy

newPutKeyPolicy Source #

Create a value of PutKeyPolicy with all optional fields omitted.

Use generic-lens or optics to modify other optional fields.

The following record fields are available, with the corresponding lenses provided for backwards compatibility:

$sel:bypassPolicyLockoutSafetyCheck:PutKeyPolicy', putKeyPolicy_bypassPolicyLockoutSafetyCheck - A flag to indicate whether to bypass the key policy lockout safety check.

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

The default value is false.

$sel:keyId:PutKeyPolicy', putKeyPolicy_keyId - Sets the key policy on the specified KMS key.

Specify the key ID or key ARN of the KMS key.

For example:

  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
  • Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

$sel:policyName:PutKeyPolicy', putKeyPolicy_policyName - The name of the key policy. The only valid value is default.

$sel:policy:PutKeyPolicy', putKeyPolicy_policy - The key policy to attach to the KMS key.

The key policy must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must allow the principal that is making the PutKeyPolicy request to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide.
  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the /Amazon Web Services Identity and Access Management User Guide/.

The key policy cannot exceed 32 kilobytes (32768 bytes). For more information, see Resource Quotas in the Key Management Service Developer Guide.

Request Lenses

putKeyPolicy_bypassPolicyLockoutSafetyCheck :: Lens' PutKeyPolicy (Maybe Bool) Source #

A flag to indicate whether to bypass the key policy lockout safety check.

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

The default value is false.

putKeyPolicy_keyId :: Lens' PutKeyPolicy Text Source #

Sets the key policy on the specified KMS key.

Specify the key ID or key ARN of the KMS key.

For example:

  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
  • Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

putKeyPolicy_policyName :: Lens' PutKeyPolicy Text Source #

The name of the key policy. The only valid value is default.

putKeyPolicy_policy :: Lens' PutKeyPolicy Text Source #

The key policy to attach to the KMS key.

The key policy must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must allow the principal that is making the PutKeyPolicy request to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide.
  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the /Amazon Web Services Identity and Access Management User Guide/.

The key policy cannot exceed 32 kilobytes (32768 bytes). For more information, see Resource Quotas in the Key Management Service Developer Guide.

Destructuring the Response

data PutKeyPolicyResponse Source #

See: newPutKeyPolicyResponse smart constructor.

Constructors

PutKeyPolicyResponse' 

newPutKeyPolicyResponse :: PutKeyPolicyResponse Source #

Create a value of PutKeyPolicyResponse with all optional fields omitted.

Use generic-lens or optics to modify other optional fields.