Skip to content

Subscriber ​

The Subscriber resource allows you to manage AWS SecurityLake Subscribers for accessing and consuming security data stored in AWS Security Lake.

Minimal Example ​

Create a basic SecurityLake subscriber with required properties and one optional property.

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

const basicSubscriber = await AWS.SecurityLake.Subscriber("basic-subscriber", {
  SubscriberIdentity: {
    Type: "AWS_ACCOUNT",
    Value: "123456789012"
  },
  SubscriberName: "MySecuritySubscriber",
  AccessTypes: ["FULL_ACCESS"],
  Sources: [
    {
      SourceType: "AWS_S3",
      SourceArn: "arn:aws:s3:::my-security-logs"
    }
  ],
  DataLakeArn: "arn:aws:securitylake:us-east-1:123456789012:data-lake"
});

Advanced Configuration ​

Configure a subscriber with additional optional properties, such as a description and tags.

ts
const advancedSubscriber = await AWS.SecurityLake.Subscriber("advanced-subscriber", {
  SubscriberIdentity: {
    Type: "AWS_ACCOUNT",
    Value: "987654321098"
  },
  SubscriberName: "AdvancedSecuritySubscriber",
  SubscriberDescription: "This subscriber accesses advanced security data.",
  AccessTypes: ["READ_ONLY"],
  Sources: [
    {
      SourceType: "AWS_S3",
      SourceArn: "arn:aws:s3:::advanced-security-logs"
    }
  ],
  DataLakeArn: "arn:aws:securitylake:us-east-1:987654321098:data-lake",
  Tags: [
    {
      Key: "Environment",
      Value: "Production"
    },
    {
      Key: "Department",
      Value: "Security"
    }
  ]
});

Multiple Sources Configuration ​

Create a subscriber that listens to multiple sources for diverse log types.

ts
const multiSourceSubscriber = await AWS.SecurityLake.Subscriber("multi-source-subscriber", {
  SubscriberIdentity: {
    Type: "AWS_ACCOUNT",
    Value: "123456789012"
  },
  SubscriberName: "MultiSourceSecuritySubscriber",
  AccessTypes: ["FULL_ACCESS"],
  Sources: [
    {
      SourceType: "AWS_S3",
      SourceArn: "arn:aws:s3:::security-logs-bucket"
    },
    {
      SourceType: "AWS_KINESIS",
      SourceArn: "arn:aws:kinesis:us-east-1:123456789012:stream/security-logs-stream"
    }
  ],
  DataLakeArn: "arn:aws:securitylake:us-east-1:123456789012:data-lake"
});

Subscriber Identity with IAM Policy ​

Define a subscriber with a specific IAM policy for access control.

ts
const iamPolicySubscriber = await AWS.SecurityLake.Subscriber("iam-policy-subscriber", {
  SubscriberIdentity: {
    Type: "AWS_ACCOUNT",
    Value: "234567890123"
  },
  SubscriberName: "IAMPolicySecuritySubscriber",
  AccessTypes: ["FULL_ACCESS"],
  Sources: [
    {
      SourceType: "AWS_S3",
      SourceArn: "arn:aws:s3:::iam-security-logs"
    }
  ],
  DataLakeArn: "arn:aws:securitylake:us-east-1:234567890123:data-lake",
  Tags: [
    {
      Key: "AccessLevel",
      Value: "Admin"
    }
  ]
});