Support cross aws account iam role authetication#979
Support cross aws account iam role authetication#979munishchouhan wants to merge 8 commits intomasterfrom
Conversation
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
|
@claude reveiw |
|
Claude finished @munishchouhan's task —— View job Code Review for Cross-Account IAM Role AuthenticationI've completed a comprehensive review of this PR that adds AWS IAM cross-account role authentication support. This is a solid implementation with excellent security practices and thorough testing. SummaryThis PR successfully implements AWS IAM cross-account role assumption for ECR authentication, allowing Wave to securely access ECR repositories across AWS accounts without sharing long-term credentials. The implementation is backward compatible and follows security best practices. Code Quality Assessment: ✅ ExcellentCore Implementation QualityContainerRegistryKeys.groovy - src/main/groovy/io/seqera/wave/service/ContainerRegistryKeys.groovy:57-60
AwsEcrService.groovy - Excellent implementation with comprehensive features:
CredentialServiceImpl.groovy - Well-integrated with existing flow:
Test Coverage Quality: ✅ OutstandingContainerRegistryKeysTest.groovy - Comprehensive unit tests (304 lines):
AwsEcrServiceTest.groovy - Thorough unit tests:
Security Assessment: ✅ Excellent
Dependency Changes: ✅ Appropriatebuild.gradle - Line 96:
Documentation: ✅ ComprehensiveThe specs/ directory contains extensive documentation covering:
Minor Suggestions for Future Enhancement
Backward Compatibility: ✅ Maintained
Final AssessmentThis is a high-quality implementation that:
The code is production-ready and demonstrates excellent understanding of AWS IAM, STS, and ECR authentication patterns. Recommendation: ✅ APPROVED - This PR is ready to merge. |
|
Tested locally with assume role and external Id |
There was a problem hiding this comment.
Why do we allow the use of credentials that are not assigned to this exact workflow? Isn't this incorrect? (I see the comment so I know it's intentional but I'd like to know the rationale behind it).
There was a problem hiding this comment.
Wave uses a user access token to retrieve credentials from the platform. If a request is from a pipeline run, then there will be a workflow ID and also a compute present. But if the call is from Wave CLI or API workflow id won't be there
There was a problem hiding this comment.
After more consideration, I think you might be right, We only to this credentials when a call is from platfrom, and currently it is only from pipeline runs
This reverts commit 36c06f6.
Summary
Add support for AWS IAM cross-account role assumption in Wave for ECR authentication. This enables users to configure AWS credentials with assume role ARN and external ID
in Tower/Platform, allowing Wave to securely access ECR repositories across AWS accounts without sharing long-term credentials.
Changes
Core Implementation
Testing
Dependencies
Documentation
Technical Details
Authentication Flow:
Backward Compatibility:
Security Considerations
Test Plan