こういうやつ、GitHub Enterprise Serverでできないと思ってたけど普通にできちゃった。
GitHub Enterprise Serverのドキュメントはこのあたり。
2箇所ポイントがあって、1つ目は、プロバイダーURLに https://<YOUR GHES HOSTNAME>/_services/token
のように定義することと、2つ目は信頼されたエンティティの定義に下記のように、自分のサーバの情報入れる必要があった。
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::xxxxx:oidc-provider/<YOUR GHES HOSTNAME>/_services/token"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringLike": {
"<YOUR GHES HOSTNAME>/_services/token:sub": "repo:<your org>/<your repo>:*"
}
}
}
]
}
ドキュメントだと、 token.actions.githubusercontent.com
ってなってるけど、これ github.com
のあたいじゃね?って感じだった。
ほかは、冒頭に提示したサイトと、公式のドキュメントみながらでハマることなく、動いた。
便利便利。