To specify more than one subject (sub) in your AWS IAM trust policy for GitHub Actions OIDC, you should provide an array of values for the ForAllValues:StringLike condition. Here’s how you can do it:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::<account>:oidc-provider/token.actions.githubusercontent.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
},
"ForAllValues:StringLike": {
"token.actions.githubusercontent.com:sub": [
"repo:<org>/<repo1>:*",
"repo:<org>/<repo2>:*"
]
}
}
}
]
}
Key point:
Use an array ([ ... ]) for multiple subjects under ForAllValues:StringLike.
Do not repeat the same key; instead, list all values in the array.