Ejemplo n.º 1
0
def _public_broadcast(topic: sns.Topic) -> Dict:
    return dict(
        Sid="PublicBroadcast",
        Effect=AWS.Allow,
        Principal=AWS.Principal("*"),
        Action=["SNS:Receive", "SNS:Subscribe"],
        Resource=topic.ref(),
        Condition=dict(StringEquals={"SNS:Protocol": ["lambda", "sqs"]}),
    )
Ejemplo n.º 2
0
def _owner_policy(topic: sns.Topic) -> Dict:
    return dict(
        Sid="OwnerPolicy",
        Effect=AWS.Allow,
        Principal=AWS.Principal("*"),
        Action=[
            "SNS:Publish",
            "SNS:RemovePermission",
            "SNS:SetTopicAttributes",
            "SNS:DeleteTopic",
            "SNS:ListSubscriptionsByTopic",
            "SNS:GetTopicAttributes",
            "SNS:Receive",
            "SNS:AddPermission",
            "SNS:Subscribe",
        ],
        Resource=topic.ref(),
        Condition=dict(StringEquals={"AWS:SourceOwner": AccountId}),
    )