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.
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,
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.
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.
来源:https://stackoverflow.com/questions/46681508/how-to-subscribe-an-sns-topic-of-one-account-by-sqs-of-another-account-using-bot