Set SNS Return Subscription ARN Info

The Amazon SNS subscribe operation by default returns either the subscription ARN (if the subscribed endpoint is managed by AWS and it belongs to the same account as the topic) or the phrase: PENDING CONFIRMATION. If you want to always return the subscription ARN, set the ReturnSubscriptionArn argument to True.

Detector ID
python/sns-set-return-subscription-arn@v1.0
Category
Common Weakness Enumeration (CWE) external icon

Noncompliant example

1def set_return_subscription_noncompliant(self,
2                                         sqs_arn: str,
3                                         topic_arn: str) -> None:
4    import botocore
5    session = botocore.session.get_session()
6    sns_client = session.create_client('sns', 'us-west-2')
7    # Noncompliant: fails to set the 'ReturnSubscriptionArn' argument to
8    # 'True' while returning the subscription ARN.
9    sns_client.subscribe(TopicArn=topic_arn, Protocol='sqs',
10                         Endpoint=sqs_arn)

Compliant example

1def set_return_subscription_compliant(self,
2                                      sqs_arn: str,
3                                      topic_arn: str) -> None:
4    import botocore
5    session = botocore.session.get_session()
6    sns_client = session.create_client('sns', 'us-west-2')
7    # Compliant: sets the 'ReturnSubscriptionArn' argument to 'True'
8    # while returning the subscription ARN.
9    sns_client.subscribe(TopicArn=topic_arn, Protocol='sqs',
10                         Endpoint=sqs_arn, ReturnSubscriptionArn=True)