【问题标题】:How to subscribe an SNS topic of one account by SQS of another account using boto3?如何使用boto3通过另一个账户的SQS订阅一个账户的SNS主题?
【发布时间】:2017-10-25 18:43:31
【问题描述】:

我正在尝试在一个帐户中创建一个 SNS 主题并将其附加到配置规则。 我有 3 个这样的帐户,并想在每个帐户中创建 SNS 主题。 现在我想通过第四个帐户的 SQS 订阅 3 个不同帐户的所有 3 个主题。

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

提前致谢。

【问题讨论】:

标签: amazon-web-services boto3 amazon-sqs amazon-sns


【解决方案1】:

为了让账户 B 中存在的 SQS 使用 boto3 订阅账户 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 订阅。

【讨论】:

    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多