GitHub Enterprise ServerでAWSのIAMとOIDCを利用してActionsであれこれ実行する

こういうやつ、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 のあたいじゃね?って感じだった。

ほかは、冒頭に提示したサイトと、公式のドキュメントみながらでハマることなく、動いた。

便利便利。