タスク 5 - Azure 接続処理を追加

GitHub アクションより Azure リソースをデプロイするため、Azure 側と GitHub 側の認証関連の設定を行います。そして、 GitHub アクションに Azure への Login 処理を追加します。

本タスクは、演習 1 で作成された API アプリUI アプリ 両方の GitHub リポジトリに対して作業を行いします。

演習作業簡略化のため、ファイルの作成と編集は main ブランチに対して直接行います。

作業

  1. Azure AD アプリの作成、 IAM 設定、Secrets の設定を行います。
    1. Azure AD アプリを作成します。
      アプリの名前は、演習 2 の準備作業で作成されていた Azure リソースグループ名を設定してください。
      操作画面イメージ

    2. Azure AD アプリに GitHub 資格情報を設定します。各項目は以下のように設定して、 [追加] ボタンをクリックします。

      項目
      フェデレーション資格情報のシナリオ* Azure リソースをデプロイする GitHub Actions
      組織* (GitHub 組織名)
      リポジトリ* (GitHub リポジトリ名)
      - API アプリの場合は、containerapps-albumapi-javascript
      - UI アプリの場合は、containerapps-album
      エンティティ型* ブランチ
      GitHub ブランチ名* main
      名前* (資格情報の名前) 
      - API アプリの場合は、api-repo
      - UI アプリの場合は、ui-repo
      操作画面イメージ

    3. 演習 2 の準備作業で作成されていた Azure リソースグループに対して Azure AD アプリの IAM を以下の手順で 共同作成者 権限を付与します。
      1. まず アクセス制御 (IAM) ブレードより ロールの割り当ての追加 を行います。
      2. 特権管理者ロール から 共同作成者 を選択して、次へ 進めます。
      3. 上記 1-1. ステップで作成した Azure AD アプリケーションをロール割り当ての対象として選択します。
      4. ロールの割り当てを確定します。
      5. ロールの割り当て結果は ロールの割り当て タブにて確認できます。
        操作画面イメージ

    4. 上記 1-1. ステップで作成した Azure AD アプリケーション情報を元に GitHub に次の Secrets を設定します。

      項目
      AZURE_CLIENT_ID (アプリケーション (クライアント) ID)
      AZURE_TENANT_ID (ディレクトリ (テナント) ID)
      AZURE_SUBSCRIPTION_ID (サブスクリプション ID)
      操作画面イメージ

  2. タスク 2 の 1. と同様の手順で、.github/workflows/build-deploy.yml ファイルを編集モードで開きます。
    操作画面イメージ

  3. ジョブの実行パーミションを設定します。
    下記 permissions.github/workflows/build-deploy.yml ファイルの deploy ジョブに追加します。

         # Add a id-token permission
         permissions:
           id-token: write
    
  4. 下記 step.github/workflows/build-deploy.yml ファイルの末尾に追加します。

           # Add a step
           - name: Azure Login using OIDC
             uses: azure/login@v1
             with:
               client-id: ${{ secrets.AZURE_CLIENT_ID }}
               tenant-id: ${{ secrets.AZURE_TENANT_ID }}
               subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    

    注意 各行のインデントを間違いと構文エラーになりますので、ご注意してください。

    操作画面イメージ

確認

  1. 以下赤枠でマークされている修正内が .github/workflows/build-deploy.yml ファイルに反映されていることを確認します。
    操作画面イメージ

  2. タスク 1 の 4. と同様に、手動実行でワークフローを起動します。
  3. ワークフロー処理はエラーなく終了し、deploy ジョブのログに Login successful. のメッセージがが出力されていることを確認します。
    操作画面イメージ

参照情報