Lesstep
GitHub Actions・GitHub ホストのランナー・2026年11月5日に確認

Set up job に「Cloud: AWS」:GitHub ホストの Linux ランナーは2026年10月28日から AWS でも動く、そこで失敗しうること

2026年10月28日から、GitHub Actions は対象の Linux のジョブを Microsoft Azure だけでなく Amazon Web Services でも動かします(GitHub の changelog)。対象は ubuntu-latest のような標準の2コアと4コアの Linux ランナーと、それに合う larger runner です。GitHub Free・GitHub Pro・GitHub Team では自動で、GitHub Enterprise Cloud では選んで有効にします。ラベルもワークフローのファイルも変わらないので、同じジョブが実行のたびにどちらのクラウドでも動きえます。たいていのジョブは気づきません。気づくのはネットワークやマシンに頼るジョブです:Azure の IP の範囲だけの許可リスト、Azure SDK のマネージド ID、決まった apt のソースを前提にするスクリプト、すぐに立ち上がる必要のあるステップ。

ジョブがどちらのクラウドで動いたか

ジョブを開き、Set up job へ。「Runner Image Provisioner」のグループにクラウドとリージョンが出ます。AWS で動いたジョブ(JPHutchins/code-review #359・2026年10月31日):

Runner Image Provisioner
  Hosted Compute Agent
  Version: 20261015.610
  Region: us-east-1
  Cloud: AWS

Azure で動いたジョブには、たとえば Region: eastus と Cloud: Azure が出ます。再実行でもう一方のクラウドに移ることがあるので、再実行で出たり消えたりする失敗は、この行と見比べる価値があります。

対象のランナー

IP の許可リスト、ファイアウォール、条件付きアクセス

AWS のプールのランナーは、別の送信元 IP アドレスから接続します。Azure や Microsoft の範囲だけを許すポリシーは、Microsoft Entra の条件付きアクセスのポリシーも含め、これらのランナーからの接続や認証を止めることがある、と GitHub のドキュメントにあります。データベースのファイアウォール、API の前の WAF、ロケーションの条件が付いたサービス プリンシパルのサインインは、AWS に当たったジョブからは失敗し、Azure に当たったジョブからは通ります。

新しい範囲も含めたすべての範囲は、GitHub の meta API の actions の配列にあり、GitHub は週に1回更新します:

curl -s https://api.github.com/meta | jq -r '.actions[]' | wc -l

2026年11月5日には 8,350 の範囲があり、IPv4 が 5,622 でした。IPv4 のうち 22 は、3.41.210.0/24 のように Amazon が AWS として公開している範囲の中にあり、Azure の範囲から作った許可リストには入りません。許可リストはクラウドの事業者の範囲ではなく actions の配列全体に合わせ続けること、そして範囲がとても多いので社内のリソースには使わず、固定の IP アドレスの範囲を持つ larger runner か、セルフホストのランナーを使うことを GitHub は勧めています。

Azure SDK の「ManagedIdentityCredential authentication failed」

AWS EC2 と Azure は、どちらもインスタンスのメタデータを 169.254.169.254 で返します。Azure Identity の SDK のいくつかは EC2 の答えを Azure のマネージド ID のサインインの失敗と読み、azure/login が用意した Azure CLI のセッションを試す前に、資格情報のチェーンをそこで止める、と GitHub の問題解決のページにあります。azure/login が成功したあとのステップが、このようなエラーで失敗します:

DefaultAzureCredential: failed to acquire a token.
ManagedIdentityCredential authentication failed.
GET http://169.254.169.254/metadata/identity/oauth2/token
RESPONSE 401: 401 Unauthorized

アプリケーションが Azure CLI のセッションを使うべきなら、その資格情報をはっきり選びます。Go で azidentity のモジュール 1.11.0 以降なら、アプリケーションのステップにこれを付けます:

- name: Run application
  env:
    AZURE_TOKEN_CREDENTIALS: AzureCLICredential
  run: ./application

ほかの言語では、アプリケーションで AzureCLICredential を直接作るか、チェーンでマネージド ID より先に来る環境変数かワークロード ID の資格情報を設定します。azure/login が成功しただけでは、SDK のワークロード ID の資格情報は設定されません。

古いイメージのバージョン

AWS のプールは、同じイメージの古いバージョンを動かしていることがあります。10月31日、AWS のジョブは ubuntu-26.04 の 20261018.50.1 で動き、その夜の Azure のランナーは 20261025.179.1 でした(code-review #359)。同じ日の別の AWS のジョブは ubuntu-24.04 の 20261018.96.1 で、そのプロジェクトが Azure で試したジョブは 20261025.353.1 でした(yshishenya/graf #7849・ロシア語)。バージョンは Set up job の「Runner Image」の下にあります。2つのバージョンのあいだで変わった道具は、同じ実行の2つのジョブで違う動きをすることがあります。

違う apt のソース

Azure では、Ubuntu のイメージはミラーの一覧を通してパッケージを読みます。イメージを作るスクリプトが、apt のソースの http://azure.archive.ubuntu.com/ubuntu/ を mirror+file:/etc/apt/apt-mirrors.txt に置き換え、その一覧には Azure のミラー、archive.ubuntu.com、security.ubuntu.com の順に並びます。このミラーの一覧を受け入れていたあるプロジェクトの確認は、AWS では「unsupported Ubuntu mirror source」でジョブを止め、そのプロジェクトは AWS のソースがどうなっているかをまだ突き止めていません(graf #7849)。Azure のミラーやミラーの一覧に合わせて /etc/apt/sources.list.d/ubuntu.sources を書き換えるスクリプトは、AWS では変えるところが見つからないかもしれません。どの URI にも合うようにするか、ソースのファイルを丸ごと書きます。

すぐに立ち上がる必要のあるステップ

AWS のランナーで、step-security/harden-runner のアクション(v2.22.2)のエージェントが、アクションの待つ 9.3 秒のうちに立ち上がりませんでした。そのときアクションは先へ進むので、block の送信のポリシーは掛からず、プロジェクト自身の確認のステップがそれを見つけてジョブを失敗させました(code-review #359)。マシンの上の何かを決まった時間だけ待つステップは、一方のクラウドでだけ時間切れになることがあります。

見分け方

失敗したジョブを IntelliJ IDEA から見るなら

Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べるので、ときどきだけ失敗するジョブがすぐ分かり、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。

JetBrains Marketplace で入れる

GitHub と GitHub Actions は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標、Amazon Web Services と AWS は Amazon.com, Inc. またはその関連会社の商標、Microsoft・Azure・Microsoft Entra は Microsoft グループの商標です。このページはそのいずれとも提携しておらず、承認も受けていません。

ほかに:Azure のミラーで apt が遅い · 「Waiting for a runner」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English