This page shows how you can use the AWS Management Console, an AWS SDK, and the AWS CLI to configure tags for an Amazon SNS
topic.
Do not add personally identifiable information (PII) or other confidential or
sensitive information in tags. Tags are accessible to other Amazon Web Services, including
billing. Tags are not intended to be used for private or sensitive data.
Sign in to the Amazon SNS console.
-
On the navigation panel, choose Topics.
-
On the Topics page, choose a topic and then choose
Edit.
-
Expand the Tags section.
The tags added to the topic are listed.
-
Modify topic tags:
-
To add a tag, choose Add tag and enter a
Key and Value
(optional).
-
To remove a tag, choose Remove tag next to a
key-value pair.
-
Choose Save changes.
Adding tags to a topic using an AWS
SDK
To use an AWS SDK, you must configure it with your credentials. For more
information, see The shared config and credentials
files in the AWS SDKs and Tools Reference Guide.
The following code examples show how to use TagResource
.
- CLI
-
- AWS CLI
-
To add a tag to a topic
The following tag-resource
example adds a metadata tag to the specified Amazon SNS topic.
aws sns tag-resource \
--resource-arn arn:aws:sns:us-west-2:123456789012:MyTopic
\
--tags Key=Team,Value=Alpha
This command produces no output.
- Java
-
- SDK for Java 2.x
-
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SnsException;
import software.amazon.awssdk.services.sns.model.Tag;
import software.amazon.awssdk.services.sns.model.TagResourceRequest;
import java.util.ArrayList;
import java.util.List;
/**
* Before running this Java V2 code example, set up your development
* environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class AddTags {
public static void main(String[] args) {
final String usage = """
Usage: <topicArn>
Where:
topicArn - The ARN of the topic to which tags are added.
""";
if (args.length != 1) {
System.out.println(usage);
System.exit(1);
}
String topicArn = args[0];
SnsClient snsClient = SnsClient.builder()
.region(Region.US_EAST_1)
.build();
addTopicTags(snsClient, topicArn);
snsClient.close();
}
public static void addTopicTags(SnsClient snsClient, String topicArn) {
try {
Tag tag = Tag.builder()
.key("Team")
.value("Development")
.build();
Tag tag2 = Tag.builder()
.key("Environment")
.value("Gamma")
.build();
List<Tag> tagList = new ArrayList<>();
tagList.add(tag);
tagList.add(tag2);
TagResourceRequest tagResourceRequest = TagResourceRequest.builder()
.resourceArn(topicArn)
.tags(tagList)
.build();
snsClient.tagResource(tagResourceRequest);
System.out.println("Tags have been added to " + topicArn);
} catch (SnsException e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
}
- Kotlin
-
- SDK for Kotlin
-
suspend fun addTopicTags(topicArn: String) {
val tag =
Tag {
key = "Team"
value = "Development"
}
val tag2 =
Tag {
key = "Environment"
value = "Gamma"
}
val tagList = mutableListOf<Tag>()
tagList.add(tag)
tagList.add(tag2)
val request =
TagResourceRequest {
resourceArn = topicArn
tags = tagList
}
SnsClient { region = "us-east-1" }.use { snsClient ->
snsClient.tagResource(request)
println("Tags have been added to $topicArn")
}
}
To manage tags using the Amazon SNS API, use the following API actions:
API actions that support ABAC
The following is a list of API actions that support attribute-based access control
(ABAC). For more details about ABAC, see What is
ABAC for AWS? in the IAM User Guide.