Okta Access RequestsでAWS権限のJIT連日申請に対応するワークフローを作る

Okta Access RequestsでAWS権限のJIT連日申請に対応するワークフローを作る

2026.05.05

はじめに

皆様こんにちは、あかいけです。
Okta Access Requestsを使ったAWS権限のJIT申請のワークフローを構築する機会がありました。

最初は「承認されたら権限を付与する」というシンプルなワークフローで問題ありませんでした。
しかし、実際の運用では 複数日にまたがる作業 が発生することも多く、「今日だけ権限が必要」という1日限りのケースだけでなく、「5/10から5/13の3日間、作業のために権限が必要」といったケースにも対応が必要でした。

毎日申請してもらうのは申請者・承認者双方の負担になります。
そこで今回は、 作業開始日・作業終了日を指定することで、一度の申請で連日の権限付与・自動剥奪まで完結できるワークフロー を作ってみました。

今回作成するOkta Access Requestsのイメージ

今回はOkta Access Requestsを使ってAWS(IAM Identity Center)の権限をJITで管理するワークフローを題材にしています。
JIT申請とは、必要なときだけ一時的に権限を付与し、不要になったら自動で剥奪する仕組みです。

たとえば「XXシステムのリリース作業のため、5/6〜5/7の2日間だけAWSのAdmin権限が必要」というケースで、承認者に一時的な権限付与を申請します。
承認されると、作業開始日に自動で権限が付与され、作業終了後には自動で剥奪されます。

ただ、こうした仕組みを自前で実装しようとすると、申請フォームの作成・承認フロー・スケジュール実行による権限付与・剥奪など、考慮すべきことが多く大変です。
そのため一般的には、AWSサービス(AWS Systems Managerのジャストインタイムノードアクセス機能など)や、Okta Access RequestsのようなSaaS製品を活用して実装することが多いです。

今回作成するワークフローの全体像

作成するワークフローの全体像は以下のとおりです。

スクリーンショット 2026-05-05 2.18.33

  1. 申請者が申請フォームに「申請理由・昇格対象の権限・作業開始日・作業終了日」を入力して申請
  2. 承認者が申請内容を確認し、承認または拒否
  3. 承認されると、作業開始日の00:00まで待機するタイマーが起動
  4. 作業開始日の00:00になったら、自動で権限を付与
  5. 権限付与後、作業終了日の00:00まで待機するタイマーが起動
  6. 作業終了日の翌日の00:00になったら、自動で権限を剥奪

事前準備

Okta Access Requestsを使うにあたり、事前準備が必要となります。
本記事の場合は、以下のような事前準備が必要です。

  • Okta側
    • Okta Access Requestsアプリケーションのインストール
    • アプリケーションのAssignments設定(申請を利用するユーザーをグループ単位で割り当て)
    • SCIMプロビジョニングの設定(OktaのユーザーおよびグループをIAM Identity Centerに自動同期)
    • Push Groupsの設定(申請者グループ・承認者グループ・権限昇格対象グループをOkta Access Requestsに同期)
    • TeamsとConfiguration listの作成
  • AWS側(IAM Identity Center)
    • IAM Identity CenterとOktaのSSOフェデレーション設定
    • SCIMによるユーザー・グループのプロビジョニング設定
    • 権限セット(Permission Set)の作成
    • アカウントへのグループと権限セットの割り当て設定

この辺りは以下ブログをご参照ください。

https://dev.classmethod.jp/articles/okta_identity_center_sso/
https://dev.classmethod.jp/articles/multi-region-iam-identity-center-okta-sso/
https://dev.classmethod.jp/articles/okta-access-requests/

Okta Access Requests 作成

Request Type Details

Request Typeの基本情報を設定します。
名前・担当Team・申請可能なAudience(グループ)を設定します。

Mark as done automaticallyをONにすると、全タスク完了時に自動でクローズされます。
特に要件がなければ、基本的にはONにしておきましょう。

スクリーンショット 2026-05-05 1.40.57

今回は以下のように設定しています。

設定項目 設定値 備考
Name AWS利用権限申請(XXシステム) 申請フォームに表示されるRequest Type名
Team IT このRequest Typeを管理するTeam
Audience Members of IT 申請フォームを利用できるグループ
Mark as done automatically ON 全タスク完了時に自動でリクエストをクローズ

Questions

申請者が入力する質問項目(Questions)を設定します。
今回は4つのQuestionを用意しました。

Question ① 申請理由

申請者が申請理由を自由記述するテキストフィールドです。

スクリーンショット 2026-05-05 1.41.57

設定項目 設定値 備考
Text 申請理由を記載してください。 申請フォームに表示される質問文
Type Text 自由記述のテキストフィールド
Assigned to Requester 申請者が回答する

Question ② 昇格対象の権限

申請者が昇格対象のグループ(権限)をドロップダウンから選択する項目です。
Data sourceにConfiguration listを指定することで、事前に定義したグループの選択肢が表示されます。

スクリーンショット 2026-05-05 1.42.08

設定項目 設定値 備考
Text 昇格対象の権限を選択してください。 申請フォームに表示される質問文
Type Dropdown ドロップダウンで選択
Data source AWSグループ一覧(Configuration list) Configuration listで定義したグループが選択肢として表示される
Assigned to Requester 申請者が回答する

Question ③ 作業開始日

権限を付与する日付を申請者が選択します。
なおDateで指定した日の00:00に権限が付与されます。

https://help.okta.com/oie/ja-jp/content/topics/identity-governance/access-requests/request-type-settings.htm

スクリーンショット 2026-05-05 1.42.35

設定項目 設定値 備考
Text 作業開始日を選択してください。(指定日の 00:00 に権限が付与されます) 申請フォームに表示される質問文
Type Date 日付ピッカーで選択
Assigned to Requester 申請者が回答する

Question ④ 作業終了日(の翌日)

権限を剥奪する日付を申請者が選択します。
Dateで指定した日の00:00に権限が剥奪されるため、5/6〜5/8の3日間作業する場合は「2026/05/09」を入力します。

スクリーンショット 2026-05-05 1.42.48

設定項目 設定値 備考
Text 作業終了日の「翌日」を選択してください。(指定日の 00:00 に権限が剥奪されます) 申請フォームに表示される質問文
Type Date 日付ピッカーで選択
Assigned to Requester 申請者が回答する

Tasks & Actions

承認・権限付与・権限剥奪の処理ブロックを設定します。

Approval(承認タスク)

承認者グループに承認を求めるタスクです。承認者は申請内容を確認し、Approve(承認)またはDeny(拒否)します。

テキストは任意ですが承認時の注意事項として、作業開始日と作業終了日が同日になっていないことをメッセージに含めています。
権限付与の開始日と終了日が同日の場合、Timerが即時完了してしまうためです。

スクリーンショット 2026-05-05 1.43.08

設定項目 設定値 備考
Text 承認者は申請内容を確認して、承認を実施してください。(作業開始日、作業終了日が同日になっていないことを確認してください。) 承認者に表示されるメッセージ
Type Approval task 承認・拒否の操作が可能なタスク
Assigned to 承認者グループ 承認権限を持つグループを指定
Due date 240 business hours(10営業日) 期限内に承認されない場合はタイムアウト

Timer(権限付与)

承認後、作業開始日まで待機するタイマーです。
End on dateタイプを選択し、Question ③(作業開始日)を参照させます。

スクリーンショット 2026-05-05 1.43.29

設定項目 設定値 備考
Timer type End on date 指定した日時になるまで待機する
End the timer using Question ③(作業開始日)を選択 Questionの回答日時をタイマー終了日として参照

Action(権限付与)

タイマー完了後に自動実行される、グループへの追加アクションです。
Run automaticallyをONにすることで、タイマー完了と同時に自動で実行されます。

スクリーンショット 2026-05-05 1.44.04

設定項目 設定値 備考
Text 申請者に権限を付与しました。 タスク完了時に表示されるメッセージ
Type [Okta] Add user to a group Oktaグループへユーザーを追加するアクション
Run Automatically ON タイマー完了と同時に自動実行される
Email address Requester's email address 権限付与時の通知先メールアドレス
Select the group Question ②(昇格対象の権限)を選択 Questionで選択されたグループに追加する

Timer(権限剥奪)

権限付与後、作業終了日の翌日まで待機するタイマーです。Question ④(作業終了日)を参照します。

スクリーンショット 2026-05-05 1.44.23

設定項目 設定値 備考
Timer type End on date 指定した日時になるまで待機する
End the timer using Question ④(作業終了日)を選択 Questionの回答日時をタイマー終了日として参照

Action(権限剥奪)

タイマー完了後に自動実行される、グループからの削除アクションです。

スクリーンショット 2026-05-05 1.44.34

設定項目 設定値 備考
Text 申請者の権限を剥奪しました。 タスク完了時に表示されるメッセージ
Type [Okta] Remove user from a group Oktaグループからユーザーを削除するアクション
Run Automatically ON タイマー完了と同時に自動実行される
Email address Requester's email address 権限剥奪時の通知先メールアドレス
Select the group Question ②(昇格対象の権限)を選択 Questionで選択されたグループから削除する

Logic

最後にLogicの設定で各TaskとActionを関連付ける必要があります。
各ブロックに「Only show this task if(前のブロックの状態)」を設定することで、順番にチェーンされます。

設定の順番は以下のとおりです。

# 対象ブロック 条件
1 Timer(権限付与) Approval が Approved の場合に実行
2 Action(権限付与) Timer(権限付与)が Completed の場合に実行
3 Timer(権限剥奪) Action(権限付与)が Completed の場合に実行
4 Action(権限剥奪) Timer(権限剥奪)が Completed の場合に実行

まず、Timer(権限剥奪)のLogicに「Wait until...(権限付与タイマー)が Completed の場合に実行」という条件を設定します。

スクリーンショット 2026-05-05 1.45.37

続いて、Action(権限剥奪)のLogicに「申請者に権限を付与しました。(権限付与アクション)が Completed の場合に実行」という条件を設定します。

スクリーンショット 2026-05-05 1.45.55

Action(権限付与)のLogicに「Wait until...(権限付与タイマー)が Completed の場合に実行」という条件を設定します。Timer(権限付与)→Action(権限付与)→Timer(権限剥奪)→Action(権限剥奪)のチェーンが形成されています。

スクリーンショット 2026-05-05 1.46.08

最後に、Timer(権限付与)のLogicに「承認タスクが Approved の場合に実行」という条件を設定して完成です。

スクリーンショット 2026-05-05 1.46.35

これでワークフロー全体が「承認→待機→権限付与→待機→権限剥奪」という流れでつながりました。

Okta Access Requests 申請

では実際に申請フォームから申請してみます。

申請フォームでは、申請理由・昇格対象の権限・作業開始日・作業終了日の翌日を入力して「Submit new request」をクリックします。

スクリーンショット 2026-05-05 1.47.37

申請が送信されると、承認者に対して承認タスクが割り当てられます。
右側のTasksパネルに「IN PROGRESS」と表示され、承認待ち状態になります。

スクリーンショット 2026-05-05 1.48.08 1

承認者はTasksパネルの「Deny」または「Approve」ボタンで承認・拒否を行います。
「View answers」を展開すると申請内容を確認できます。

スクリーンショット 2026-05-05 1.48.22

承認されると、Timer(権限付与)が起動し、作業開始日の00:00まで待機する状態になります。
(タイマーが完了するまで権限は付与されません)

スクリーンショット 2026-05-05 1.48.37

作業開始日の00:00になると権限が付与され、続いてTimer(権限剥奪)が起動します。
作業終了日の翌日00:00まで待機します。

スクリーンショット 2026-05-05 1.48.57

作業終了日の翌日00:00になると権限が自動で剥奪され、全タスクが「COMPLETED」となりリクエストが「Resolved」になります。

スクリーンショット 2026-05-05 1.49.23

さいごに

以上、Okta Access Requestsで連日の申請に対応するワークフローの作成でした。
Timerブロックを利用することで、「承認後すぐに権限付与」ではなく「指定日時に権限付与・剥奪」を自動化できるため、
複数日にまたがる作業が多い環境では、毎日申請・承認の手間を省けるため、運用負荷の軽減に役立てられると思います。

またOkta Access Requests 作成の部分でも触れましたが、QuestionのDate型の仕様として、Timerのトリガーは指定日の00:00(深夜0時)に実行される 点に注意が必要です。
作業開始直前に権限が欲しい場合は問題ありませんが、業務時間内(9:00など)に付与したい場合はTimerの仕様上対応できないため、運用側でルールを設けておくことをおすすめします。

この記事がOkta Access Requestsユーザーのお役に立てば幸いです。


毎月好評開催中『Auth0』導入実践ウェビナー

Auth0のアカウント作成から認証基盤の立上げ、サンプルアプリでのログイン機能の作成まで、一連の流れをデモンストレーションにてお見せします。 Auth0の認証基盤導入でどのように工数が削減されるのか、実際の操作工程を見て導入を検討したいという方におすすめのウェビナーです。

認証機能の開発工数削減をデモで体験!次世代認証基盤サービス『Auth0』導入実践ウェビナー

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事