Protection
Learn how to create, update, and manage AWS Shield Protections using Alchemy Cloud Control.
The Protection resource lets you manage AWS Shield Protections to safeguard your applications against DDoS attacks and ensure high availability.
Minimal Example
Section titled “Minimal Example”Create a basic AWS Shield Protection with required properties and common optional ones like health checks and tags.
import AWS from "alchemy/aws/control";
const basicProtection = await AWS.Shield.Protection("basicProtection", { resourceArn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", healthCheckArns: [ "arn:aws:route53:::healthcheck/12345678-1234-1234-1234-123456789012" ], tags: [ { key: "Environment", value: "Production" }, { key: "Project", value: "MyApp" } ], name: "MyApplicationProtection"});
Advanced Configuration
Section titled “Advanced Configuration”Configure advanced settings for application layer automatic responses to enhance security during attacks.
import AWS from "alchemy/aws/control";
const advancedProtection = await AWS.Shield.Protection("advancedProtection", { resourceArn: "arn:aws:cloudfront::123456789012:distribution/E1234567890", applicationLayerAutomaticResponseConfiguration: { automaticResponseStatus: "ENABLED", responseAction: { action: "BLOCK", blockResponse: { blockResponse: "MALICIOUS_REQUEST" } } }, name: "MyAdvancedProtection"});
Custom Protection with Adoption
Section titled “Custom Protection with Adoption”Create a protection resource while adopting an existing resource if it already exists.
import AWS from "alchemy/aws/control";
const customProtection = await AWS.Shield.Protection("customProtection", { resourceArn: "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0", adopt: true, // Adopt existing resource instead of failing healthCheckArns: [ "arn:aws:route53:::healthcheck/87654321-4321-4321-4321-abcdefabcdef" ], tags: [ { key: "Environment", value: "Staging" }, { key: "Owner", value: "Team Alpha" } ], name: "StagingProtection"});