Bug 1958424 - aws: support more auth options in manual mode
Summary: aws: support more auth options in manual mode
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Installer
Version: 4.8
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ---
: 4.8.0
Assignee: Greg Sheremeta
QA Contact: wang lin
URL:
Whiteboard:
Depends On:
Blocks: 1958428
TreeView+ depends on / blocked
 
Reported: 2021-05-07 21:22 UTC by Greg Sheremeta
Modified: 2021-07-27 23:07 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: No Doc Update
Doc Text:
Clone Of:
: 1958428 (view as bug list)
Environment:
Last Closed: 2021-07-27 23:07:25 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github openshift installer pull 4596 0 None closed aws: support more auth options in manual mode 2021-05-07 21:40:49 UTC
Github openshift installer pull 4655 0 None closed aws/session.go: include another internal provider name for static creds 2021-05-07 21:40:49 UTC
Red Hat Product Errata RHSA-2021:2438 0 None None None 2021-07-27 23:07:42 UTC

Description Greg Sheremeta 2021-05-07 21:22:30 UTC
Currently the installer only supports static credentials from
AWS config/credentials file or environment for authenticating with AWS.

For the default credential modes (mint/passthrough) this restriction makes
sense because the installer transfers those credentials to the cluster to mint/
passthrough creds to all the components.

For manual mode this restriction can be removed as the credentials are used only
by the installer and installer's internal components(terraform). This is especially
important for allowing users to use STS Webhook identity work, where the users want the
installer to assume a certain role using specific token specified by env variables or,
the aws config file.

The new credentials loading,

loads the previously used env and static credentials provider first,
when not provided it uses the AWS SDK's default internal logic to load of credentials
from all kinds of supported methods
Now, when the installer tried to create the secret for moving creds to secret, it checks if
credentials are static. If the credentials are not static, these are only allowed in manual
credentials modes like,

FATAL failed to fetch Openshift Manifests: failed to generate asset "Openshift Manifests": AWS credentials provided by AssumeRoleProvider are not valid for default credentials mode
installer does not configure the terraform aws provider with specific credentials and since
it also has the same behaviour as described above there should be no problem using these temporary
credentials for terraform.

xref: https://issues.redhat.com/browse/CCO-29

Comment 2 W. Trevor King 2021-05-08 00:57:56 UTC
Greg, can you describe the verification process?

Comment 4 W. Trevor King 2021-05-08 02:12:43 UTC
Or maybe these in-flight docs [1]?

[1]: https://github.com/openshift/openshift-docs/pull/31136/files

Comment 6 wang lin 2021-05-08 04:49:45 UTC
Verified on 4.8.0-fc.3, the results are as expected.

1. non-static credentials with cco in default mode
 ./openshift-install create manifests
......
FATAL failed to fetch Openshift Manifests: failed to generate asset "Openshift Manifests": AWS credentials provided by WebIdentityCredentials are not valid for default credentials mode 

2. non-static credentials with cco in Mint mode
 ./openshift-install create manifests
......
FATAL failed to fetch Openshift Manifests: failed to generate asset "Openshift Manifests": AWS credentials provided by WebIdentityCredentials are not valid for Mint credentials mode 

3. non-static credentials with cco in Passthrough mode
./openshift-install create manifests
......
FATAL failed to fetch Openshift Manifests: failed to generate asset "Openshift Manifests": AWS credentials provided by AssumeRoleProvider are not valid for Passthrough credentials mode 

4. non-static credentials with cco in Manual mode
./openshift-install create manifests
INFO Credentials loaded from the AWS config using "WebIdentityCredentials" provider 
INFO Consuming Install Config from target directory 
INFO Manifests created in: manifests and openshift 

##the cluster can be installed successfully with non-static credentials
./openshift-install create cluster --log-level=debug
......
DEBUG   Fetching Ironic bootstrap credentials...   
DEBUG   Reusing previously-fetched Ironic bootstrap credentials 
DEBUG Generating Terraform Variables...            
INFO Credentials loaded from the AWS config using "WebIdentityCredentials" provider 
DEBUG Fetching Kubeconfig Admin Client...          
......
DEBUG Time elapsed per stage:                      
DEBUG     Infrastructure: 11m8s                    
DEBUG Bootstrap Complete: 11m40s                   
DEBUG                API: 2s                       
DEBUG  Bootstrap Destroy: 2m27s                    
DEBUG  Cluster Operators: 17m48s                   
DEBUG            Console: 1s                       
INFO Time elapsed: 43m22s

Comment 9 errata-xmlrpc 2021-07-27 23:07:25 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Container Platform 4.8.2 bug fix and security update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:2438


Note You need to log in before you can comment on or make changes to this bug.