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

[community-4.8] WINC-632: Secure BYOH username annotation #560

Conversation

openshift-cherrypick-robot

This is an automated cherry-pick of #508

/assign sebsoto

This commit removes the username from logging statements when attempting
to establish SHH connection to an instance. Usernames are potentially
sensitive data, so it is best to avoid exposing them as plaintext.
This commit introduces the crypto package functions to symmetrically
encrypt/decrypt information. This package is used to encrypt instance
usernames before adding them as node annotations, no longer exposing
usernames as cleartext. This identifier is then decrypted when it is
accessed again during the BYOH node deconfigure process. The SSH private
key is used as the symmetric passphrase.
This commit reacts to changes to the private key secret used to SSH into
Windows instances. A patch is applied to each BYOH node, updating its public
key hash and encrypted username annotations using the new private key data.
This commit edits the parsing helpers for the BYOH instances ConfigMap
to be decoupled from any single controller.
Also now uses the introduced helper to split entries in the instances map.
This commit modifies the existing function that gets the SSH public key in
the test suite to also return the associated private key secret, which
is already pulled down within the function body.
This commit updates the e2e tests to validate BYOH node annotations.
Criteria was added to the waitForNodes to ensure that the BYOH annotation and
the username annotation are present, decipherable, and correct.

Also, a reconfiguration test case was added to ensure nodes are properly
updated when the SSH private key is changed to a random key.
`go get golang.org/x/crypto/openpgp`
`go mod vendor && go mod tidy`
@sebsoto
Copy link
Contributor

sebsoto commented Aug 4, 2021

/approve
/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Aug 4, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 4, 2021

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: openshift-cherrypick-robot, sebsoto

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 4, 2021
@openshift-ci openshift-ci bot merged commit 4768679 into openshift:community-4.8 Aug 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants