Docs / Strand / connectors/aws-sns

AWS SNS

Direction: Write Only | Type: aws.sns

Amazon Simple Notification Service connector for publishing messages to SNS topics. This is a forward-only connector: data is sent to SNS and no response data is returned beyond confirmation.

Required Permissions

The IAM user or role must have the following permissions:

Operation Required IAM Permissions
publish sns:Publish
Tip: Scope permissions to specific topic ARNs to follow the principle of least privilege.

Operations

Operation Direction Description
publish Write Publish a message to an SNS topic

Connector Configuration

Field Required Default Description
Authentication Type No api_key api_key for explicit credentials, role to use the host's IAM role / default credential chain
Region Yes - AWS region code (e.g., us-east-1)
Endpoint URL No - Custom endpoint for a self-managed target or an AWS VPC endpoint. Leave empty for AWS.
Access Key ID Conditional - AWS access key (encrypted). Required when Authentication Type is api_key
Secret Access Key Conditional - AWS secret key (encrypted). Required when Authentication Type is api_key
Role ARN Conditional - Your IAM role ARN for cross-account access via STS AssumeRole. Required when Authentication Type is role. The role must trust the Tendrl AWS account.
External ID No - External ID for STS AssumeRole (encrypted). Recommended with role auth to prevent confused-deputy attacks.
Topic ARN No - Default SNS topic ARN (can be overridden at node level)
Role-Based Authentication

With role authentication you do not store static access keys; Strand authenticates using the host's default credential chain (EC2 instance profile, ECS task role, or environment credentials). You must still provide a Role ARN when creating the connector (the role should trust the Tendrl AWS account); an optional External ID hardens the trust policy.

Node Configuration

Field Required Description
Topic ARN No SNS topic ARN (overrides connector default)
Subject No Message subject (default: Event Notification)

Output

json

{
  "success": true,
  "status": "sent",
  "data": {
    "message_id": "abc-123",
    "topic_arn": "arn:aws:sns:us-east-1:123456789:my-topic"
  },
  "service": "aws.sns",
  "operation": "publish"
}

Example

Connector Setup:

json

{
  "region": "us-east-1",
  "access_key_id": "AKIAIOSFODNN7EXAMPLE",
  "secret_access_key": "wJalrXUtnFEMI/K7MDENG...",
  "topic_arn": "arn:aws:sns:us-east-1:123456789:alerts"
}

Connector Setup (role-based):

json

{
  "auth_type": "role",
  "region": "us-east-1",
  "role_arn": "arn:aws:iam::123456789012:role/strand-access",
  "topic_arn": "arn:aws:sns:us-east-1:123456789:alerts"
}

Node Configuration: