CreateProtection - AWS Shield Advanced

CreateProtection

Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Amazon RouteĀ 53 hosted zone, AWS Global Accelerator standard accelerator, Elastic IP Address, Application Load Balancer, or a Classic Load Balancer. You can protect Amazon EC2 instances and Network Load Balancers by association with protected Amazon EC2 Elastic IP addresses.

You can add protection to only a single resource with each CreateProtection request. You can add protection to multiple resources at once through the Shield Advanced console. For more information see Getting Started with AWS Shield Advanced and Managing resource protections in AWS Shield Advanced.

Request Syntax

{ "Name": "string", "ResourceArn": "string", "Tags": [ { "Key": "string", "Value": "string" } ] }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

Name

Friendly name for the Protection you are creating.

Type: String

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

Pattern: [ a-zA-Z0-9_\\.\\-]*

Required: Yes

ResourceArn

The ARN (Amazon Resource Name) of the resource to be protected.

The ARN should be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Elastic Load Balancer (Classic Load Balancer): arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name

  • For an Amazon CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id

  • For an AWS Global Accelerator standard accelerator: arn:aws:globalaccelerator::account-id:accelerator/accelerator-id

  • For Amazon RouteĀ 53: arn:aws:route53:::hostedzone/hosted-zone-id

  • For an Elastic IP address: arn:aws:ec2:region:account-id:eip-allocation/allocation-id

Type: String

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

Pattern: ^arn:aws.*

Required: Yes

Tags

One or more tag key-value pairs for the Protection object that is created.

Type: Array of Tag objects

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

Required: No

Response Syntax

{ "ProtectionId": "string" }

Response Elements

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

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

ProtectionId

The unique identifier (ID) for the Protection object that is created.

Type: String

Length Constraints: Fixed length of 36.

Pattern: [a-zA-Z0-9\\-]*

Errors

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

InternalErrorException

Exception that indicates that a problem occurred with the service infrastructure. You can retry the request.

HTTP Status Code: 500

InvalidOperationException

Exception that indicates that the operation would not cause any change to occur.

HTTP Status Code: 400

InvalidParameterException

Exception that indicates that the parameters passed to the API are invalid. If available, this exception includes details in additional properties.

HTTP Status Code: 400

InvalidResourceException

Exception that indicates that the resource is invalid. You might not have access to the resource, or the resource might not exist.

HTTP Status Code: 400

LimitsExceededException

Exception that indicates that the operation would exceed a limit.

HTTP Status Code: 400

OptimisticLockException

Exception that indicates that the resource state has been modified by another client. Retrieve the resource and then retry your request.

HTTP Status Code: 400

ResourceAlreadyExistsException

Exception indicating the specified resource already exists. If available, this exception includes details in additional properties.

HTTP Status Code: 400

ResourceNotFoundException

Exception indicating the specified resource does not exist. If available, this exception includes details in additional properties.

HTTP Status Code: 400

See Also

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