Skip to content

Commit e21fd39

Browse files
github: Use IAM Roles to push files on AWS S3 (#45)
For security reasons long lived credentials are not considered secure. To overcome this issue we can configure Github Workflows to use AWS OpenID Connect instead: For further details: https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect
1 parent d2e5ccd commit e21fd39

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

.github/workflows/release.yml

+12
Original file line numberDiff line numberDiff line change
@@ -181,12 +181,17 @@ jobs:
181181

182182
create-release:
183183
runs-on: ubuntu-latest
184+
environment: production
184185
needs: [build, build-go]
186+
permissions:
187+
contents: write
188+
id-token: write # This is required for requesting the JWT
185189
env:
186190
TARGET: "/tools/"
187191
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
188192
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
189193
AWS_REGION: "us-east-1" # or https://github.com/aws/aws-cli/issues/5623
194+
PROJECT_NAME: rp2040tools
190195
steps:
191196
- name: Checkout rp2040tools repository # we need package_index.template
192197
uses: actions/checkout@v4
@@ -225,5 +230,12 @@ jobs:
225230
token: ${{ secrets.GITHUB_TOKEN }}
226231
artifacts: "release/*,package_index_draft.json"
227232

233+
- name: configure aws credentials
234+
uses: aws-actions/configure-aws-credentials@v4
235+
with:
236+
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
237+
role-session-name: "github_${{ env.PROJECT_NAME }}"
238+
aws-region: ${{ env.AWS_REGION }}
239+
228240
- name: Upload release files on Arduino downloads servers
229241
run: aws s3 sync release/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }}

0 commit comments

Comments
 (0)