Support for IAM-based authentication in the Subscriptions API
We have added support for IAM-based authentication for SNS and SQS Destinations. The new field authenticationMode
is available on SQSDestination and SNSDestination and defines the mode of authentication. IAM-based authentication allows the Subscriptions API to send messages to a queue or publish to a topic, without explicitly providing credentials in the form of an accessKey
and accessSecret
. This simplifies key management for customers who maintain hundreds of queues and rotate credentials regularly. By providing permissions to an IAM user instead, the access needs to be set up once per topic and requires no additional key management. For backwards compatibility, the authenticationMode
field is set to Credentials
by default.
Changes:
- [API] Added fields
authenticationMode
to SQSDestination and SNSDestination. - [API] Added AwsAuthenticationMode.
- [GraphQL API] Added the following types to the GraphQL schema:
AwsAuthenticationMode
. - [GraphQL API] Changed the
SQSDestinationInput
type:SQSDestinationInput.accessSecret
input field type changed fromString!
toString
SQSDestinationInput.accessKey
input field type changed fromString!
toString
- Input field
authenticationMode
was added toSQSDestinationInput
type
- [GraphQL API] Changed the
SNSDestinationInput
type:SNSDestinationInput.accessSecret
input field type changed fromString!
toString
SNSDestinationInput.accessKey
input field type changed fromString!
toString
- Input field
authenticationMode
was added toSNSDestinationInput
type
- [GraphQL API] Changed the
SQSDestination
type:SQSDestination.accessSecret
field type changed fromString!
toString
- Added the
authenticationMode
field to theSQSDestination
type. SQSDestination.accessKey
field type changed fromString!
toString
- [GraphQL API] Changed the
SNSDestination
type:SNSDestination.accessSecret
field type changed fromString!
toString
SNSDestination.accessKey
field type changed fromString!
toString
- Added the
authenticationMode
field to theSNSDestination
type.
The following changes were introduced in terms of GraphQL SDL:
extend type SQSDestination {authenticationMode: AwsAuthenticationMode!}extend type SNSDestination {authenticationMode: AwsAuthenticationMode!}extend input SQSDestinationInput {authenticationMode: AwsAuthenticationMode = Credentials}extend input SNSDestinationInput {authenticationMode: AwsAuthenticationMode = Credentials}enum AwsAuthenticationMode {IAMCredentials}