Skip to content
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

Allow sensitive values to be used in preconfigured webhooks without showing up in the execution context #2787

Closed
willgorman opened this issue May 15, 2018 · 50 comments

Comments

@willgorman
Copy link
Contributor

Issue Summary:

Preconfigured webhooks may contain sensitive values (like credentials to authenticate with the webhook endpoint) with an expectation of privacy since those values are not displayed in Deck when adding the stage to a pipeline. However, as mentioned here those values still are available in the execution context.

Feature Area:

Webhook stages

Description:

It would be helpful to be able to keep the values from the preconfigured webhook stage that aren't needed in Deck from being returned. This could be the default behavior, but in cases where the values aren't sensitive it can be valuable to still have them available for troubleshooting. Another option would be to allow the preconfigured stage to declare what values are sensitive:

      customHeaders:
        X-Api-Key:
          - <newrelic-api-key>
        Content-Type:
          - application/json
      # Proposed change
      sensitiveHeaders:
        - X-Api-Key
      sensitivePayload: true

(I'm assuming that only headers or the payload would be expected to contain sensitive data)

Additional details:

Relates to spinnaker/orca#1329

@lwander
Copy link
Member

lwander commented May 16, 2018

I think this deserves a broader discussion around handling secrets between spinnaker & a trigger source, as well integrating this with Spinnaker's authz to avoid having the wrong users read/edit a shared secret.

I know @ezimanyi has some thoughts about this, especially with the new, more generic CI integrations he's working on.

@ezimanyi
Copy link
Contributor

My thinking had been more related to improving the security of inbound webhooks. Right now, the only authentication mechanism we support is adding a pre-shared expected key in the payload; I was considering augmenting that, possibly by adding a specific authentication-related field and only storing a hash of the expected value in Spinnaker.

On the outbound side, we of course can't get away with just storing a hash as we'll need the actual secret to send along, so the goal should be limiting the exposure of that secret as much as possible. Ideally there would be some kind of secret management that could handle access to these secrets---but absent that it seems that identifying in the webhook which ones are sensitive and avoiding including those in the execution context seems reasonable.

@spinnakerbot
Copy link

This issue hasn't been updated in 90 days, so we are tagging it as 'stale'. If you want to remove this label, comment:

@spinnakerbot remove-label stale

@spinnakerbot
Copy link

This issue is tagged as 'stale' and hasn't been updated in 45 days, so we are tagging it as 'to-be-closed'. It will be closed in 45 days unless updates are made. If you want to remove this label, comment:

@spinnakerbot remove-label to-be-closed

@spinnakerbot
Copy link

This issue is tagged as 'to-be-closed' and hasn't been updated in 45 days, so we are closing it. You can always reopen this issue if needed.

@ghostsquad
Copy link

can this issue be reopened?

@ezimanyi
Copy link
Contributor

I'll re-open and tag this as sig/security to see if they have any thoughts, though definitely can't comment on whether they will prioritize this.

@bcornils
Copy link

Hi @ezimanyi Thanks for filing the issue. Unfortunately, no one is available to work on this at the moment, but we welcome contributions from our community. We strongly encourage you to discuss your plans here or on the SIG's slack channel before you start working on the issue.

@spinnakerbot
Copy link

This issue hasn't been updated in 45 days, so we are tagging it as 'stale'. If you want to remove this label, comment:

@spinnakerbot remove-label stale

@ghostsquad
Copy link

@spinnakerbot remove-label stale

@spinnakerbot spinnakerbot removed the stale label Jul 2, 2020
@spinnakerbot
Copy link

This issue hasn't been updated in 45 days, so we are tagging it as 'stale'. If you want to remove this label, comment:

@spinnakerbot remove-label stale

@ghostsquad
Copy link

@spinnakerbot remove-label stale

@spinnakerbot
Copy link

This issue hasn't been updated in 45 days, so we are tagging it as 'stale'. If you want to remove this label, comment:

@spinnakerbot remove-label stale

@iiro
Copy link

iiro commented Sep 30, 2020 via email

@spinnakerbot
Copy link

This issue is tagged as 'stale' and hasn't been updated in 45 days, so we are tagging it as 'to-be-closed'. It will be closed in 45 days unless updates are made. If you want to remove this label, comment:

@spinnakerbot remove-label to-be-closed

@spinnakerbot
Copy link

This issue hasn't been updated in 45 days, so we are tagging it as 'stale'. If you want to remove this label, comment:

@spinnakerbot remove-label stale

@qrnik
Copy link

qrnik commented Apr 11, 2022 via email

@spinnakerbot
Copy link

This issue is tagged as 'stale' and hasn't been updated in 45 days, so we are tagging it as 'to-be-closed'. It will be closed in 45 days unless updates are made. If you want to remove this label, comment:

@spinnakerbot remove-label to-be-closed

@dcchambers
Copy link

@spinnakerbot remove-label to-be-closed

@dcchambers
Copy link

@spinnakerbot remove-label stale

@spinnakerbot
Copy link

This issue hasn't been updated in 45 days, so we are tagging it as 'stale'. If you want to remove this label, comment:

@spinnakerbot remove-label stale

@jervi
Copy link

jervi commented Sep 9, 2022

@spinnakerbot remove-label stale

@spinnakerbot spinnakerbot removed the stale label Sep 9, 2022
@spinnakerbot
Copy link

This issue hasn't been updated in 45 days, so we are tagging it as 'stale'. If you want to remove this label, comment:

@spinnakerbot remove-label stale

@spinnakerbot
Copy link

This issue is tagged as 'stale' and hasn't been updated in 45 days, so we are tagging it as 'to-be-closed'. It will be closed in 45 days unless updates are made. If you want to remove this label, comment:

@spinnakerbot remove-label to-be-closed

@dcchambers
Copy link

@spinnakerbot remove-label to-be-closed

@dcchambers
Copy link

@spinnakerbot remove-label stale

@spinnakerbot
Copy link

This issue hasn't been updated in 45 days, so we are tagging it as 'stale'. If you want to remove this label, comment:

@spinnakerbot remove-label stale

@spinnakerbot
Copy link

This issue is tagged as 'stale' and hasn't been updated in 45 days, so we are tagging it as 'to-be-closed'. It will be closed in 45 days unless updates are made. If you want to remove this label, comment:

@spinnakerbot remove-label to-be-closed

@spinnakerbot
Copy link

This issue is tagged as 'to-be-closed' and hasn't been updated in 45 days, so we are closing it. You can always reopen this issue if needed.

@Lisenish
Copy link

@ezimanyi @bcornils Can we reopen it again? I think this is still actual (and maybe also it makes sense to froze it so bot doesn't auto-close it?)

@vjda
Copy link

vjda commented Dec 12, 2023

I've created this PR spinnaker/orca#4615 to address part of this issue. It would be great if any maintainer could take a look at it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.