Question:
I’m trying to create an SNS topic in one account and attach it to Config Rules.
I have 3 such accounts and want to create SNS topic in each of the account.
Now i want to subscribe all of the 3 topics of 3 different accounts by SQS of the fourth account.
I’m able to do it manually. Can somebody please tell me how it can be done via boto3.
Thanks in Advance.
Answer:
In order to subscribe a SNS topic present in Account A by an SQS present in Account B using boto3, following is the procedure.
In Account A, create SNS topic and add the proper permission.
For example,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import boto3 sns_client = boto3.clien('sns') topics = sns_client.create_topic(Name='SNS topic name') sns_client.add_permission( TopicArn=str(topics['TopicArn']), Label=label, AWSAccountId=[ "AccountB_Id", ], ActionName=[ "GetTopicAttributes", "SetTopicAttributes", "AddPermission", "RemovePermission", "DeleteTopic", "Subscribe", "ListSubscriptionsByTopic", "Publish", "Receive" ] ) |
Now to subscribe the created topic from Account B, execute the following code from account B.
1 2 3 4 5 6 7 8 |
import boto3 subscription_client = boto3.client('sns') subscription_client.subscribe( TopicArn="ARN of the topic created", Protocol="sqs", Endpoint="ARN of the SQS present in Account B" ) |
Now you would see the SNS topic of account A been subscribed by account B.