2017-10-11 115 views
4

我试图在一个帐户中创建一个SNS主题并将其附加到配置规则。 我有3个这样的帐户,并希望在每个帐户中创建SNS主题。 现在我想通过第四个账户的SQS订阅3个不同账户的所有3个主题。如何使用boto3通过另一个帐户的SQS订阅一个帐户的SNS主题?

我可以手动完成。有人可以告诉我如何通过boto3完成。

在此先感谢。

+0

到目前为止,您对http://boto3.readthedocs.io/en/latest/reference/services/sns.html#SNS.Client.subscribe – mootmoot

+0

已尝试了什么?当您手动执行该操作时,您采取了哪些步骤? – Mangohero1

+0

我已经提到aws文档[SendMessageToSQS](http://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.cross.account.html) –

回答

0

为了使用boto3订阅账户B中存在的SQS在账户A中存在的SNS主题,以下是过程。

在帐户A中,创建SNS主题并添加适当的权限。 例如,

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" 
       ] 
      ) 

我们了解帐户B认购创建话题,从账户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" 
      ) 

现在你会看到账户A的SNS话题被认购的账户B.

相关问题