タスク 5 - Azure 接続処理を追加
GitHub アクションより Azure リソースをデプロイするため、Azure 側と GitHub 側の認証関連の設定を行います。そして、 GitHub アクションに Azure への Login 処理を追加します。
本タスクは、演習 1 で作成された API アプリ
とUI アプリ
両方の GitHub リポジトリに対して作業を行いします。
演習作業簡略化のため、ファイルの作成と編集は main ブランチに対して直接行います。
作業
- Azure AD アプリの作成、 IAM 設定、Secrets の設定を行います。
- Azure AD アプリを作成します。
アプリの名前は、演習 2 の準備作業で作成されていた Azure リソースグループ名を設定してください。操作画面イメージ
-
Azure AD アプリに GitHub 資格情報を設定します。各項目は以下のように設定して、 [追加] ボタンをクリックします。
項目 値 フェデレーション資格情報のシナリオ* Azure リソースをデプロイする GitHub Actions 組織* (GitHub 組織名) リポジトリ* (GitHub リポジトリ名)
- API アプリの場合は、containerapps-albumapi-javascript
- UI アプリの場合は、containerapps-album
エンティティ型* ブランチ GitHub ブランチ名* main 名前* (資格情報の名前)
- API アプリの場合は、api-repo
- UI アプリの場合は、ui-repo
操作画面イメージ
- 演習 2 の準備作業で作成されていた Azure リソースグループに対して Azure AD アプリの IAM を以下の手順で
共同作成者
権限を付与します。- まず
アクセス制御 (IAM)
ブレードよりロールの割り当ての追加
を行います。 特権管理者ロール
から共同作成者
を選択して、次へ
進めます。- 上記 1-1. ステップで作成した Azure AD アプリケーションをロール割り当ての対象として選択します。
- ロールの割り当てを確定します。
- ロールの割り当て結果は
ロールの割り当て
タブにて確認できます。操作画面イメージ
- まず
-
上記 1-1. ステップで作成した Azure AD アプリケーション情報を元に GitHub に次の Secrets を設定します。
項目 値 AZURE_CLIENT_ID (アプリケーション (クライアント) ID) AZURE_TENANT_ID (ディレクトリ (テナント) ID) AZURE_SUBSCRIPTION_ID (サブスクリプション ID) 操作画面イメージ
- Azure AD アプリを作成します。
- タスク 2 の 1. と同様の手順で、
.github/workflows/build-deploy.yml
ファイルを編集モードで開きます。操作画面イメージ
-
ジョブの実行パーミションを設定します。
下記permissions
を.github/workflows/build-deploy.yml
ファイルのdeploy
ジョブに追加します。# Add a id-token permission permissions: id-token: write
-
下記
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 }}
注意 各行のインデントを間違いと構文エラーになりますので、ご注意してください。
操作画面イメージ
確認
- 以下赤枠でマークされている修正内が
.github/workflows/build-deploy.yml
ファイルに反映されていることを確認します。操作画面イメージ
- タスク 1 の 4. と同様に、手動実行でワークフローを起動します。
- ワークフロー処理はエラーなく終了し、deploy ジョブのログに
Login successful.
のメッセージがが出力されていることを確認します。操作画面イメージ