View a markdown version of this page

CreatePolicy - AWS Network Security Manager

CreatePolicy

Creates a policy. A policy combines templates and rules with enforcement settings for a firewall type, such as AWS WAF or AWS Shield Advanced. Use isPublished to create the policy in published (ACTIVE) or draft (DRAFT) state.

Request Syntax

POST /policies HTTP/1.1 Content-type: application/json { "associatedTemplateAndRuleList": [ { ... } ], "clientToken": "string", "firewallType": "string", "isPublished": boolean, "policyConfiguration": { "remediationEnabled": boolean, "resourcesCleanUp": boolean, "wafConfig": { "conflictResolution": "string", "existingCustomerWebACLResolution": "string" } }, "policyDescription": "string", "policyName": "string", "priority": number, "tags": { "string" : "string" } }

URI Request Parameters

The request does not use any URI parameters.

Request Body

The request accepts the following data in JSON format.

associatedTemplateAndRuleList

The templates and rules to associate with the policy. For AWS WAF policies, specify 1 to 100 templates or rules, of which at most 2 can be templates. For AWS Shield Advanced policies, this list must be empty.

Type: Array of TemplateOrRuleReference objects

Array Members: Minimum number of 0 items. Maximum number of 100 items.

Required: No

clientToken

A unique, case-sensitive token that you provide to ensure that the operation completes no more than one time. If you retry a request with the same client token and the same parameters, the service returns the result of the original successful request.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: [\x21-\x7E]+

Required: No

firewallType

The firewall type associated with the resource.

Type: String

Valid Values: WAF | SHIELD_ADVANCED

Required: Yes

isPublished

Specifies whether to publish the resource. When true, the resource is saved in published (ACTIVE) state. When false, it is saved as a draft (DRAFT). Default: true.

Type: Boolean

Required: No

policyConfiguration

The configuration settings that control the policy's behavior, including remediation and firewall-type-specific settings.

Type: PolicyConfiguration object

Required: Yes

policyDescription

A description of the policy.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 256.

Pattern: [a-zA-Z0-9 _.:/=+\-@]*

Required: No

policyName

The name of the policy.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: [a-zA-Z0-9][a-zA-Z0-9 _.:/=+\-@]*

Required: Yes

priority

The priority of the resource. A lower number indicates a higher priority.

Type: Integer

Valid Range: Minimum value of 1.

Required: Yes

tags

The tags to add to the resource when it is created.

Type: String to string map

Map Entries: Minimum number of 0 items. Maximum number of 200 items.

Key Length Constraints: Minimum length of 1. Maximum length of 128.

Key Pattern: ([\p{L}\p{Z}\p{N}_.:/=+\-@]*)

Value Length Constraints: Minimum length of 0. Maximum length of 256.

Required: No

Response Syntax

HTTP/1.1 201 Content-type: application/json { "associatedTemplateAndRuleList": [ { ... } ], "firewallType": "string", "hasPublishedVersion": boolean, "isSnapshot": boolean, "policyArn": "string", "policyConfiguration": { "remediationEnabled": boolean, "resourcesCleanUp": boolean, "wafConfig": { "conflictResolution": "string", "existingCustomerWebACLResolution": "string" } }, "policyDescription": "string", "policyId": "string", "policyName": "string", "priority": number, "status": "string", "updatedAt": "string", "updateToken": "string", "version": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 201 response.

The following data is returned in JSON format by the service.

associatedTemplateAndRuleList

The templates and rules associated with the policy. For AWS WAF policies, this list contains 1 to 100 templates or rules, of which at most 2 can be templates. For AWS Shield Advanced policies, this list is empty.

Type: Array of AssociatedTemplateOrRule objects

Array Members: Minimum number of 0 items. Maximum number of 100 items.

firewallType

The firewall type associated with the resource.

Type: String

Valid Values: WAF | SHIELD_ADVANCED

hasPublishedVersion

Specifies whether a published version of the resource exists.

Type: Boolean

isSnapshot

Specifies whether the resource is a snapshot of a published version.

Type: Boolean

policyArn

The Amazon Resource Name (ARN) of the policy.

Type: String

Length Constraints: Minimum length of 20. Maximum length of 1010.

Pattern: arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:(.+)

policyConfiguration

The configuration settings that control the policy's behavior, including remediation and firewall-type-specific settings.

Type: PolicyConfiguration object

policyDescription

A description of the policy.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 256.

Pattern: [a-zA-Z0-9 _.:/=+\-@]*

policyId

The service-generated id of the policy.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: [a-z0-9]{1,64}

policyName

The name of the policy.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: [a-zA-Z0-9][a-zA-Z0-9 _.:/=+\-@]*

priority

The priority of the resource. A lower number indicates a higher priority.

Type: Integer

Valid Range: Minimum value of 1.

status

The current status of the resource: DRAFT (unpublished, editable) or ACTIVE (published, in use).

Type: String

Valid Values: DRAFT | ACTIVE | DISABLED

updatedAt

The time when the resource was last updated.

Type: Timestamp

updateToken

A token used for optimistic concurrency control. Each read and write returns an updateToken. Provide the most recent value on your next update to detect and prevent conflicting concurrent modifications.

Type: String

Length Constraints: Fixed length of 36.

Pattern: ([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})

version

The version of the resource.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 10.

Pattern: [1-9][0-9]*

Errors

For information about the errors that are common to all actions, see Common Error Types.

AccessDeniedException

You do not have sufficient permissions to perform this action.

HTTP Status Code: 403

ConflictException

The request conflicts with the current state of the resource. For example, the resource was modified concurrently, or it is in a state that does not allow the requested operation.

resourceId

The ID of the resource that is in conflict with the request.

resourceType

The type of the resource that is in conflict with the request.

HTTP Status Code: 409

InternalServerException

The request processing failed because of an internal error in the service. This is a retryable error.

HTTP Status Code: 500

ServiceQuotaExceededException

The request would exceed a service quota.

quotaCode

The code that identifies the service quota that was exceeded.

resourceId

The ID of the resource associated with the quota that was exceeded.

resourceType

The type of the resource associated with the quota that was exceeded.

serviceCode

The code for the AWS service that owns the quota that was exceeded.

HTTP Status Code: 402

ServiceUnavailableException

The service is temporarily unavailable. This is a retryable error.

retryAfterSeconds

The number of seconds to wait before retrying the request.

HTTP Status Code: 503

TagPolicyViolationException

The request violates a tag policy that is in effect for the account or organization.

HTTP Status Code: 400

ThrottlingException

The request was denied because of request throttling. Reduce your request rate and try again.

retryAfterSeconds

The number of seconds to wait before retrying the request.

HTTP Status Code: 429

ValidationException

The request failed validation. For details, see the reason and fieldList members of the response.

fieldList

The list of request fields that failed validation, if any.

reason

The reason that the request failed validation.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: