Skip to content

Commit dd037a2

Browse files
PoC: AssumeRole approach for IPA Metric Collection
1 parent 981b3c8 commit dd037a2

File tree

3 files changed

+22
-16
lines changed

3 files changed

+22
-16
lines changed

.github/workflows/release-IPA-metrics.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,16 @@ jobs:
4040
working-directory: tools/spectral/ipa/metrics/scripts
4141
run: node runMetricCollection.js "${{ github.workspace }}/v2.json"
4242

43+
- name: aws configure
44+
uses: aws-actions/configure-aws-credentials@v4
45+
with:
46+
role-to-assume: ${{ vars.IPA_METRIC_COLLECTION_AWS_S3_ROLE_TO_ASSUME_STAGING}}
47+
aws-region: ${{ vars.AWS_DEFAULT_REGION}}
48+
4349
- name: Dump Metric Collection Job Data to S3
44-
env:
45-
AWS_ACCESS_KEY_ID: ${{ secrets.IPA_S3_BUCKET_DW_PROD_USERNAME }}
46-
AWS_SECRET_ACCESS_KEY: ${{ secrets.IPA_S3_BUCKET_DW_PROD_PASSWORD }}
47-
S3_BUCKET_PREFIX: ${{ secrets.IPA_S3_BUCKET_DW_PROD_PREFIX }}
50+
with:
51+
AWS_REGION: ${{ vars.AWS_DEFAULT_REGION}}
52+
S3_BUCKET_PREFIX: ${{ secrets.IPA_S3_BUCKET_DW_STAGING_PREFIX}}
4853
working-directory: tools/spectral/ipa/metrics/scripts
4954
run: node dataDump.js
5055

tools/spectral/ipa/metrics/metricS3Upload.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ import { PutObjectCommand, S3ServiceException } from '@aws-sdk/client-s3';
22
import config from './config.js';
33
import path from 'path';
44
import fs from 'node:fs';
5-
import { getS3Client, getS3FilePath } from './utils/dataDumpUtils.js';
5+
import {
6+
getS3FilePath,
7+
getS3Client
8+
} from './utils/dataDumpUtils.js';
69

710
/**
811
* Upload IPA product metrics to Data Warehouse S3

tools/spectral/ipa/metrics/utils/dataDumpUtils.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ function loadS3Config() {
1010
}
1111
return {
1212
aws: {
13-
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
14-
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
15-
region: 'us-east-1',
13+
region: process.env.AWS_REGION,
1614
},
1715
s3: {
1816
prefix: process.env.S3_BUCKET_PREFIX,
@@ -29,14 +27,14 @@ export function getS3FilePath() {
2927
return { bucketName, key };
3028
}
3129

30+
/**
31+
* Gets an S3 client configured to use AssumeRole credentials
32+
* @returns {S3Client} Configured S3 client
33+
*/
3234
export function getS3Client() {
33-
const AWSConfig = loadS3Config();
35+
const S3Config = loadS3Config();
3436

35-
return new S3Client({
36-
credentials: {
37-
accessKeyId: AWSConfig.aws.accessKeyId,
38-
secretAccessKey: AWSConfig.aws.secretAccessKey,
39-
},
40-
region: AWSConfig.aws.region,
41-
});
37+
// When running in GitHub Actions with aws-actions/configure-aws-credentials,
38+
// the SDK will automatically use the credentials from the environment
39+
return new S3Client({ region: S3Config.aws.region });
4240
}

0 commit comments

Comments
 (0)