Okta Access RequestsでAWS権限のJIT連日申請に対応するワークフローを作る
はじめに
皆様こんにちは、あかいけです。
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製品を活用して実装することが多いです。
今回作成するワークフローの全体像
作成するワークフローの全体像は以下のとおりです。

- 申請者が申請フォームに「申請理由・昇格対象の権限・作業開始日・作業終了日」を入力して申請
- 承認者が申請内容を確認し、承認または拒否
- 承認されると、作業開始日の00:00まで待機するタイマーが起動
- 作業開始日の00:00になったら、自動で権限を付与
- 権限付与後、作業終了日の00:00まで待機するタイマーが起動
- 作業終了日の翌日の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)の作成
- アカウントへのグループと権限セットの割り当て設定
この辺りは以下ブログをご参照ください。
Okta Access Requests 作成
Request Type Details
Request Typeの基本情報を設定します。
名前・担当Team・申請可能なAudience(グループ)を設定します。
Mark as done automaticallyをONにすると、全タスク完了時に自動でクローズされます。
特に要件がなければ、基本的にはONにしておきましょう。

今回は以下のように設定しています。
| 設定項目 | 設定値 | 備考 |
|---|---|---|
| Name | AWS利用権限申請(XXシステム) | 申請フォームに表示されるRequest Type名 |
| Team | IT | このRequest Typeを管理するTeam |
| Audience | Members of IT | 申請フォームを利用できるグループ |
| Mark as done automatically | ON | 全タスク完了時に自動でリクエストをクローズ |
Questions
申請者が入力する質問項目(Questions)を設定します。
今回は4つのQuestionを用意しました。
Question ① 申請理由
申請者が申請理由を自由記述するテキストフィールドです。

| 設定項目 | 設定値 | 備考 |
|---|---|---|
| Text | 申請理由を記載してください。 | 申請フォームに表示される質問文 |
| Type | Text | 自由記述のテキストフィールド |
| Assigned to | Requester | 申請者が回答する |
Question ② 昇格対象の権限
申請者が昇格対象のグループ(権限)をドロップダウンから選択する項目です。
Data sourceにConfiguration listを指定することで、事前に定義したグループの選択肢が表示されます。

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

| 設定項目 | 設定値 | 備考 |
|---|---|---|
| Text | 作業開始日を選択してください。(指定日の 00:00 に権限が付与されます) | 申請フォームに表示される質問文 |
| Type | Date | 日付ピッカーで選択 |
| Assigned to | Requester | 申請者が回答する |
Question ④ 作業終了日(の翌日)
権限を剥奪する日付を申請者が選択します。
Dateで指定した日の00:00に権限が剥奪されるため、5/6〜5/8の3日間作業する場合は「2026/05/09」を入力します。

| 設定項目 | 設定値 | 備考 |
|---|---|---|
| Text | 作業終了日の「翌日」を選択してください。(指定日の 00:00 に権限が剥奪されます) | 申請フォームに表示される質問文 |
| Type | Date | 日付ピッカーで選択 |
| Assigned to | Requester | 申請者が回答する |
Tasks & Actions
承認・権限付与・権限剥奪の処理ブロックを設定します。
Approval(承認タスク)
承認者グループに承認を求めるタスクです。承認者は申請内容を確認し、Approve(承認)またはDeny(拒否)します。
テキストは任意ですが承認時の注意事項として、作業開始日と作業終了日が同日になっていないことをメッセージに含めています。
権限付与の開始日と終了日が同日の場合、Timerが即時完了してしまうためです。

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

| 設定項目 | 設定値 | 備考 |
|---|---|---|
| Timer type | End on date | 指定した日時になるまで待機する |
| End the timer using | Question ③(作業開始日)を選択 | Questionの回答日時をタイマー終了日として参照 |
Action(権限付与)
タイマー完了後に自動実行される、グループへの追加アクションです。
Run automaticallyをONにすることで、タイマー完了と同時に自動で実行されます。

| 設定項目 | 設定値 | 備考 |
|---|---|---|
| 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 ④(作業終了日)を参照します。

| 設定項目 | 設定値 | 備考 |
|---|---|---|
| Timer type | End on date | 指定した日時になるまで待機する |
| End the timer using | Question ④(作業終了日)を選択 | Questionの回答日時をタイマー終了日として参照 |
Action(権限剥奪)
タイマー完了後に自動実行される、グループからの削除アクションです。

| 設定項目 | 設定値 | 備考 |
|---|---|---|
| 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 の場合に実行」という条件を設定します。

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

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

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

これでワークフロー全体が「承認→待機→権限付与→待機→権限剥奪」という流れでつながりました。
Okta Access Requests 申請
では実際に申請フォームから申請してみます。
申請フォームでは、申請理由・昇格対象の権限・作業開始日・作業終了日の翌日を入力して「Submit new request」をクリックします。

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

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

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

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

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

さいごに
以上、Okta Access Requestsで連日の申請に対応するワークフローの作成でした。
Timerブロックを利用することで、「承認後すぐに権限付与」ではなく「指定日時に権限付与・剥奪」を自動化できるため、
複数日にまたがる作業が多い環境では、毎日申請・承認の手間を省けるため、運用負荷の軽減に役立てられると思います。
またOkta Access Requests 作成の部分でも触れましたが、QuestionのDate型の仕様として、Timerのトリガーは指定日の00:00(深夜0時)に実行される 点に注意が必要です。
作業開始直前に権限が欲しい場合は問題ありませんが、業務時間内(9:00など)に付与したい場合はTimerの仕様上対応できないため、運用側でルールを設けておくことをおすすめします。
この記事がOkta Access Requestsユーザーのお役に立てば幸いです。










