Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[Messenger] Add sessionToken option to SQS transport #45064

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

filkaris
Copy link
Contributor

@filkaris filkaris commented Jan 18, 2022

Q A
Branch? 6.1
Bug fix? no
New feature? yes
Deprecations? no
Tickets
License MIT
Doc PR symfony/symfony-docs#16411

When trying to authenticate to use an SQS transport, AWS Credentials have 3 "keys"

  • aws_access_key_id
  • aws_secret_access_key
  • aws_session_token

The last one, aws_session_token is only required for temporary credentials. In those cases though, it must be passed as well otherwise AWS returns a 403 Access Denied.

The async-aws library supports this in its configuration https://async-aws.com/configuration.html#sessiontoken

This MR essentially makes sure the user can pass this parameter inside yaml options

@carsonbot
Copy link

Hey!

To help keep things organized, we don't allow "Draft" pull requests. Could you please click the "ready for review" button or close this PR and open a new one when you are done?

Note that a pull request does not have to be "perfect" or "ready for merge" when you first open it. We just want it to be ready for a first review.

Cheers!

Carsonbot

@filkaris filkaris marked this pull request as ready for review January 18, 2022 19:32
@carsonbot carsonbot added this to the 6.1 milestone Jan 18, 2022
@carsonbot
Copy link

Hey!

I see that this is your first PR. That is great! Welcome!

Symfony has a contribution guide which I suggest you to read.

In short:

  • Always add tests
  • Keep backward compatibility (see https://symfony.com/bc).
  • Bug fixes must be submitted against the lowest maintained branch where they apply (see https://symfony.com/releases)
  • Features and deprecations must be submitted against the 6.1 branch.

Review the GitHub status checks of your pull request and try to solve the reported issues. If some tests are failing, try to see if they are failing because of this change.

When two Symfony core team members approve this change, it will be merged and you will become an official Symfony contributor!
If this PR is merged in a lower version branch, it will be merged up to all maintained branches within a few days.

I am going to sit back now and wait for the reviews.

Cheers!

Carsonbot

Copy link
Member

@chalasr chalasr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

with minor comment

Copy link
Member

@jderusse jderusse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

session_token is ephemeral. Having an option for this sounds weird to me.
We already accepted a similar PR for SES (#42982 (review))

@chalasr
Copy link
Member

chalasr commented Jan 19, 2022

Having an option for this sounds weird to me.

@jderusse given you approved, did you mean "good"?

@filkaris
Copy link
Contributor Author

session_token is ephemeral. Having an option for this sounds weird to me. We already accepted a similar PR for SES (#42982 (review))

I saw what you wrote in the other PR, and it's true that the sdk can use environmental variables instead, and have no configuration in options

However I've had cases with multiple credentials where I wanted to control to which account I wanted to connect

Environmental variables have fixed names and can only keep one set of credentials, but if you use symfony config you can specify custom variable names

eg.

            primary_transport:
                dsn: "%env(PRIMARY_SQS_URL)%"
                options:
                    region: eu-west-1
                    access_key: "%env(PRIMARY_AWS_ACCESS_KEY_ID)%"
                    secret_key: "%env(PRIMARY_AWS_SECRET_ACCESS_KEY)%"
                    session_token: "%env(PRIMARY_AWS_SESSION_TOKEN)%"

            transport_in_another_account:
                dsn: "%env(SECONDARY_SQS_URL)%"
                options:
                    region: eu-west-1
                    access_key: "%env(SECONDARY_AWS_ACCESS_KEY_ID)%"
                    secret_key: "%env(SECONDARY_AWS_SECRET_ACCESS_KEY)%"
                    session_token: "%env(SECONDARY_AWS_SESSION_TOKEN)%"

@jderusse
Copy link
Member

jderusse commented Jan 19, 2022

@filkaris that's a very good use-case. Thank you for the snippet.

👍 for my side

@fabpot fabpot force-pushed the messenger-add-session-token-option-to-sqs-transport branch from a3ae1b2 to d3bce0e Compare January 19, 2022 16:08
@fabpot
Copy link
Member

fabpot commented Jan 19, 2022

Thank you @filkaris.

@fabpot fabpot merged commit 1027fad into symfony:6.1 Jan 19, 2022
@filkaris filkaris deleted the messenger-add-session-token-option-to-sqs-transport branch January 19, 2022 16:12
@fabpot fabpot mentioned this pull request Apr 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.