@@ -3,6 +3,26 @@ name: build docker image and push it to ECR
33on :
44 workflow_call :
55 inputs :
6+ useOIDC :
7+ description : Whether to use OIDC for assume role
8+ required : false
9+ type : boolean
10+ default : false
11+ githubOIDCRoleArn :
12+ description : Github OIDC role ARN
13+ required : false
14+ type : string
15+ default : " "
16+ awsRegion :
17+ description : AWS region
18+ required : false
19+ type : string
20+ default : us-east-1
21+ awsSessionDuration :
22+ description : AWS session duration
23+ required : false
24+ type : number
25+ default : 3600
626 imageTag :
727 description : Tag given to container image
828 required : true
2040 required : false
2141 type : string
2242 default : ./deploy/Dockerfile
23- awsRegion :
24- description : AWS region
25- required : false
26- type : string
27- default : us-east-1
2843 slackChannelId :
2944 description : Slack Channel ID
3045 required : false
6378 secrets :
6479 awsAccessKeyId :
6580 description : AWS access key ID
66- required : true
81+ required : false
6782 awsSecretAccessKey :
6883 description : AWS secret access key
69- required : true
84+ required : false
7085 slackToken :
7186 description : Slack API token
7287 required : false
@@ -154,7 +169,26 @@ jobs:
154169 - name : setup Docker Buildx
155170 uses : docker/setup-buildx-action@v3
156171
172+ # Assume OIDC Role, the trust relationship between GitHub and AWS is defined in IAM in the organization account.
173+ - name : assume OIDC Role
174+ if : inputs.useOIDC == true
175+ uses : aws-actions/configure-aws-credentials@v4
176+ with :
177+ aws-region : ${{ inputs.awsRegion }}
178+ role-to-assume : ${{ inputs.githubOIDCRoleArn }}
179+ role-duration-seconds : ${{ inputs.awsSessionDuration }}
180+
181+ # This parameter is needed otherwise this action is trying to tag session
182+ # which does not work for cross-account assume
183+ role-skip-session-tagging : true
184+
185+ - name : login to AWS ECR using OIDC
186+ if : inputs.useOIDC == true
187+ id : login-ecr
188+ uses : aws-actions/amazon-ecr-login@v2
189+
157190 - name : login to AWS ECR
191+ if : inputs.useOIDC == false
158192 uses : docker/login-action@v3
159193 with :
160194 registry : ${{ inputs.registry }}
0 commit comments