PublishingDestination
The PublishingDestination resource lets you manage AWS GuardDuty PublishingDestinations for exporting findings to external destinations such as Amazon S3 or AWS Security Hub.
Minimal Example
Section titled “Minimal Example”Create a basic PublishingDestination with required properties and one optional tag.
import AWS from "alchemy/aws/control";
const publishingDestination = await AWS.GuardDuty.PublishingDestination("MyPublishingDestination", {  DetectorId: "abcd1234efgh5678ijkl9012mnop3456qrstuvwx", // Replace with your actual detector ID  DestinationType: "S3",  DestinationProperties: {    BucketArn: "arn:aws:s3:::my-guardduty-findings-bucket",    KmsKeyArn: "arn:aws:kms:us-east-1:123456789012:key/my-kms-key" // Optional, if using KMS  },  Tags: [    {      Key: "Environment",      Value: "Production"    }  ]});Advanced Configuration
Section titled “Advanced Configuration”Configure a PublishingDestination with additional properties including a KMS key for enhanced security.
const securePublishingDestination = await AWS.GuardDuty.PublishingDestination("SecurePublishingDestination", {  DetectorId: "abcd1234efgh5678ijkl9012mnop3456qrstuvwx", // Replace with your actual detector ID  DestinationType: "S3",  DestinationProperties: {    BucketArn: "arn:aws:s3:::my-secure-guardduty-findings-bucket",    KmsKeyArn: "arn:aws:kms:us-west-2:123456789012:key/my-secure-kms-key" // Specify KMS key for encryption  },  Tags: [    {      Key: "Project",      Value: "GuardDuty"    },    {      Key: "Confidentiality",      Value: "High"    }  ]});Adoption of Existing Resource
Section titled “Adoption of Existing Resource”If you want to adopt an existing PublishingDestination without failing, you can set the adopt property to true.
const existingPublishingDestination = await AWS.GuardDuty.PublishingDestination("AdoptExistingDestination", {  DetectorId: "abcd1234efgh5678ijkl9012mnop3456qrstuvwx", // Replace with your actual detector ID  DestinationType: "S3",  DestinationProperties: {    BucketArn: "arn:aws:s3:::my-existing-guardduty-findings-bucket"  },  adopt: true // Adopt existing resource});