Skip to content

fix(scale-set): read the AMI id parameter with the compute provider credentials - #5580

Open
alixinne wants to merge 1 commit into
github-aws-runners:mainfrom
alixinne:alixinne/read-ssm-assume-role
Open

alixinne wants to merge 1 commit into
github-aws-runners:mainfrom
alixinne:alixinne/read-ssm-assume-role

Conversation

@alixinne

@alixinne alixinne commented Nov 6, 2026

Copy link
Copy Markdown

Description

The EC2 runner client read the AMI id SSM parameter with the shared default SSM client, i.e. the credentials of the runtime role. With scale sets that is the controller task role, whereas only the compute provider role, which the controller assumes to launch instances, is allowed to read an external AMI id parameter.

createEc2RunnerClient now accepts an optional SSM client used for that lookup (including the on-demand failover), and the scale-set provider passes the one built with the assumed credentials. The Lambda control plane is unchanged.

Test Plan

  • Deployed a scale set with an externally managed SSM parameter holding the AMI ID. EC2 instance creation fails due to missing GetParameter permissions.
  • Replaced the SSM client used by the controller to use the one obtained after the compute provider role assumption, which does have the permission to read the external SSM parameter.
  • Instances are started and jobs are picked up as expected.

Related Issues

None.

@alixinne
alixinne requested a review from a team as a code owner November 6, 2026 13:46
…redentials

The EC2 runner client read the AMI id SSM parameter with the shared default SSM
client, i.e. the credentials of the runtime role. With scale sets that is the
controller task role, whereas only the compute provider role, which the
controller assumes to launch instances, is allowed to read an external AMI id
parameter.

createEc2RunnerClient now accepts an optional SSM client used for that lookup
(including the on-demand failover), and the scale-set provider passes the one
built with the assumed credentials. The Lambda control plane is unchanged.
@alixinne
alixinne force-pushed the alixinne/read-ssm-assume-role branch from 27658ae to d78ee6e Compare November 6, 2026 13:50

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant