警告が出ていた古い Amplify アプリケーションの GitHub 接続を OAuth Apps から GitHub Apps へ移行する

警告が出ていた古い Amplify アプリケーションの GitHub 接続を OAuth Apps から GitHub Apps へ移行する

Clock Icon2024.12.25

いわさです。

先日 Amplify コンソールにアクセスしたところ、ちょっと古めの(1 年弱前に作成した)アプリケーションに「更新が必要です」マークが表示されていました。
引き続きソースコードからアプリのビルドと更新を行うためには Git プロバイダーとの接続の再確立が必要とのこと。

3AD1C6F3-2048-44D2-93B9-A9610F08552E.png

検証用に作成し、今は使っていないアプリケーションだったのでスルーしようかなとも思ったのですが、警告表示が邪魔だったので対応することにしました。
せっかくなので、これがどういう警告なのか、どういうステップで更新すれば良いのかを紹介します。

なお、新規でアプリ作成する際には今は GitHub アプリが使われるようになっているのでこの記事の内容を意識する必要はありません。
コンソールが古いころの記事ですが、以下も参考にしてください。

https://dev.classmethod.jp/articles/amplify_cloudformation_deploy_githubapp/

GitHub アプリへ移行する必要性

このアプリケーションをコンソールで開いてみると、「GitHub アプリに移行」という警告バナーとダイアログが表示されました。

D2266BCF-4609-4F6E-8CCA-BFB60EB997DA_1_105_c.jpeg

こちら何が書いてあるかというと、Amplify では接続した Git リポジトリが更新された際に自動でビルドとデプロイが走るのですが、その仕組に従来の OAuth ウェブフックではなく、GitHub アプリを使用するようになったということが言われています。

以下の Amplify 公式ドキュメントにも記載されているのですが「We strongly recommend that you migrate these apps to use the Amplify GitHub App」とのことなので強めに移行が推奨されています。

https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth

GitHub 公式ドキュメントでも GitHub Apps と OAuth apps について比較されており、今は GitHub Apps が推奨されています。様々な理由から GitHub Apps のほうがメリットがあるようです。(ただし、Enterpriseレベルのリソースアクセスには現時点でOAuth appsの使用が必要)

  • セキュリティとアクセス制御の強化

    • きめ細かいリポジトリアクセス制御
    • 有効期間の短いトークンを使用
    • 資格情報漏洩時の被害を最小限に抑制
  • 自動化機能の強化

    • ユーザー入力なしでの動作が可能
    • Organization内のユーザー変更に影響されない継続的な動作
  • 効率的な管理と拡張性

    • Webhookイベントの一元管理が可能
    • リポジトリ数と組織ユーザー数に応じたスケーラブルなレート制限

https://docs.github.com/ja/apps/oauth-apps/building-oauth-apps/differences-between-github-apps-and-oauth-apps

GitHub 側から見ると OAuth apps が使えなくなるというということではないですが、Amplify 側からは今後も含めて不明です。
上記メリットもあるので移行出来るならしたほうが良さそうです。ということで移行してみよう。

移行手順

アプリを開くと先ほどのようにダイアログが表示されます。
ここから「移行を開始」を選択します。

450F3216-9FB0-4947-9E02-6279813E2190.png

GitHub アプリのインストール&承認画面に遷移します。
ここで「GitHub アプリケーションを設定」ボタンを操作します。

56A65D45-02DB-4FE7-8946-2F30BD3A56AF.png

私はすでに別のリポジトリで GitHub Apps をインストール済みで、全リポジトリを許可していたため追加の操作は不要でした。
初インストールやリポジトリ制限を行っている場合はここで追加の認可操作が必要になると思われます。

CA4BA628-C8A8-47D8-9672-27FFF883B668_4_5005_c.jpeg

A680448E-8055-4C1E-887B-2A9514438C5C_4_5005_c.jpeg

操作はこれだけです。これで移行完了。簡単ですね。

4CB3D761-D72F-47E8-898E-28CBA58723C5_4_5005_c.jpeg

GitHub の Settings 画面にある Integrations -> Applications を見てみると、Authorized GitHub Apps タブから AWS Amplify が確認出来ます。

23515051-6306-495D-A573-60170E747E40.png

Amplify コンソールのアプリ一覧からも警告表示が解消されました。

A4539D07-B6E2-4A80-A721-B75D6EC5780F.png

任意で GitHub リポジトリ側も掃除する

ウェブフック

OAuth apps の時は Amplify が連携するリポジトリごとにウェブフックが設定されていました。
こちらですが、今回の操作で GitHub Apps に移行した後も引き続き残り続けます。

81A00383-2798-44FD-9178-A07510E08DCD.png

GitHub Apps ではビルドインのウェブフックが使われるのでリポジトリごとにウェブフックの設定が不要になります。
なので、AWS 公式ドキュメントには記載が無いですが削除してしまいます。ポチ。

963FCF16-4DC8-491F-9C7A-61A0316A655E.png

OAuth Apps

先ほどは Authorized GitHub Apps タブを確認しました。
Authorized OAuth Apps タブを確認してみると、こちらにも AWS Amplify アプリが存在しています。これが前まで使われていた OAuth Apps です。

A03DDC5C-B2CE-4859-A400-32CD9903D036.png

全ての Amplify アプリの移行が完了したのであればこちらも不要になります。
Revoke してしまいます。

C2BAC1C0-C2E4-4896-9C28-0C4EE03B3F0F.png

デプロイ確認

念の為上記のお掃除後にリポジトリにプッシュしてして Amplify の更新をトリガーしてみましたが、問題なく自動ビルド&デプロイが動作しました。良さそうです。

E5D58A53-E866-4EAA-85EF-105578224752.png

さいごに

本日は警告が出ていた古い Amplify アプリケーションの GitHub 接続を OAuth アプリから GitHub Apps へ移行してみました。

後半の GitHub 側リソースの掃除は公式ドキュメントには記載されておらずエイヤでやってみましたが動いていそうです。
ただ、Amplify 連携の内部挙動を把握しきれているわけではないので適当なリポジトリで評価するなど自己責任でお願いします。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.