Skip to content

DRTAccess

The DRTAccess resource allows you to manage access to the AWS Shield DDoS Response Team (DRT) for your AWS resources. This resource is essential for enabling AWS Shield to log and monitor your resources for potential DDoS attacks. For more information, visit the AWS Shield DRTAccess.

Minimal Example

Create a DRTAccess resource with the required properties and one optional property.

ts
import AWS from "alchemy/aws/control";

const drtAccess = await AWS.Shield.DRTAccess("drtAccessResource", {
  LogBucketList: ["arn:aws:s3:::my-log-bucket"],
  RoleArn: "arn:aws:iam::123456789012:role/myShieldRole"
});

Advanced Configuration

Configure a DRTAccess resource with additional options, such as adopting existing resources.

ts
const advancedDrtAccess = await AWS.Shield.DRTAccess("advancedDrtAccessResource", {
  LogBucketList: ["arn:aws:s3:::my-log-bucket", "arn:aws:s3:::my-additional-log-bucket"],
  RoleArn: "arn:aws:iam::123456789012:role/myAdvancedShieldRole",
  adopt: true
});

Logging Configuration

Set up a DRTAccess resource specifically for logging access with multiple log buckets.

ts
const loggingDrtAccess = await AWS.Shield.DRTAccess("loggingDrtAccessResource", {
  LogBucketList: [
    "arn:aws:s3:::my-log-bucket",
    "arn:aws:s3:::my-backup-log-bucket"
  ],
  RoleArn: "arn:aws:iam::123456789012:role/myLoggingShieldRole"
});

Role Permissions Example

Define a DRTAccess resource with specific IAM role permissions for enhanced security.

ts
const permissionsDrtAccess = await AWS.Shield.DRTAccess("permissionsDrtAccessResource", {
  LogBucketList: ["arn:aws:s3:::my-secure-log-bucket"],
  RoleArn: "arn:aws:iam::123456789012:role/myPermissionsShieldRole",
  adopt: false
});

// IAM Policy for the Role
const policy = {
  Version: "2012-10-17",
  Statement: [
    {
      Effect: "Allow",
      Action: [
        "shield:AssociateDRTAccess",
        "shield:DisassociateDRTAccess",
        "shield:GetDRTAccess",
        "shield:ListDRTAccess"
      ],
      Resource: "*"
    }
  ]
};