AI API キーを監査する
このチュートリアルでは、OpenAI と Anthropic の API キーを監査し、注意が必要なキーのレポートをメールで受け取るフローを、コードを書かずに構築する方法を説明します。その過程で、OpenAI と Anthropic のアクションを、Filter、Date/time transform、Notification ノードと連結する方法を学びます。
OpenAI と Anthropic の Admin API アクションは Early preview 版として提供されています。アクセスをリクエストするには、サポートリクエストを送信してください。
Goal and objectives
-
Goal: すべての OpenAI Admin API キーと Anthropic API キーを一覧表示し、それらを「stale」(直近 90 日間未使用)と「never used」(未使用)に分類し、各カテゴリごとにフォーマットされたレポートをメール送信するワークフローを作成することです。フローは読み取り専用であり、いかなるキーも変 更または無効化しません。
-
Objectives: このトリアルでは次の内容を学びます。
-
フローから OpenAI と Anthropic の Admin API アクションを呼び出す方法。
-
1 つのアクションの出力を Filter ノードで複数のブランチに分岐させる方法。
-
コードノードの代わりに Date/time transform ノードを使ってローリングの時間ウィンドウを構築する方法。
-
通知メッセージをテーブルとしてフォーマットし、報告対象がない場合は通知をスキップする方法。
-
次に、このチュートリアルで構築するフロー全体の例を示します。

Before you begin
OpenAI Admin API 接続と Anthropic Admin API 接続を作成してください。Anthropic 接続には Admin API キーを含める必要があります。これは API キー管理のオペレーションに必須です。
Start building
-
DoiT コンソール にサインインし、上部ナビゲーションのメガメニューから Automation and operations を選択し、CloudFlow を選択します。
-
Create CloudFlow を選択します。
Step 1: Add a trigger
What should start your flow ブロックで Manually start を選択します。後で custom schedule に切り替えて(例: 監査を毎週実行するようにして)もかまいませんが、フローの構築とテストを行う間は手動トリガーの方が簡単です。
Step 2: List OpenAI admin keys
-
What do you want to do ブロックで Perform an action を選択し、OpenAI を選択してから、
admin-api-keys-listアクションを選択します。 -
Connection タブで、OpenAI Admin API 接続を選択します。
-
Test タブで Test を選択してアクションを実行します。レスポンスには Admin API キーの
data配列が含まれます。各キーにはid、name、owner、last_used_atなどのフィールドが含まれており、フローの残りの部分でこれらを参照します。
Step 3: List Anthropic API keys
-
フローに別の Perform an action ノードを追加し、Anthropic を選択してから、
listApiKeysアクションを選択します。 -
Parameters タブで Add additional parameters を選択し、Limit を
100に設定して、1 回の実行で最大 100 個のキーを返すようにします。 -
Connection タブで Anthropic Admin API 接続を選択し、Test タブでアクションをテストします。

Step 4: Keep only OpenAI keys with usage
OpenAI キーの last_used_at フィールドは、そのキーが一度も使用されていない場合は空になります。使用履歴があるキーとないキーでは扱いを分ける必要があります。タイムスタンプが存在する場合のみ 90 日の閾値と比較できるため、まずフローでキー一覧を 2 つに分割します。
-
Filter ノードを追加し、名前を
OpenAI keys with usageにします。 -
Field でプラスアイコン(+)を選択し、
2. List OpenAI admin keys.dataを選択します。 -
Filter 1 で条件を
data.last_used_at is not nullに設定します。
このノードは、少なくとも一度は使用されたキーのみを出力します。
Step 5: Compute the stale threshold
キーが「stale」とみなされるのは、その最終使用日から 90 日を超えている場合、言い換えると last_used_at + 90 days がフロー実行時点よりも前である場合です。Date/time transform ノードは、この比較に使う値を計算し、レポート用に生のタイムスタンプを読みやすい日付形式に整形します。
-
Date/time transform ノードを追加し、名前を
Compute stale thresholdにします。 -
Select which field you want to transform でプラスアイコン(+)を選択し、
4. OpenAI keys with usage.last_used_atを選択します。 -
変換アクションを Add に設定し、Value を
90、Duration をDaysに設定し、新しいフィールド名をstaleAfterにします。 -
Add another transform を選択します。同じ
last_used_atフィールドを入力として選択し、変換アクションを Format に設定し、新しいフィールド名をlastUsedDateにして、日付フォーマットYYYY-MM-DDを選択します。
このノードは各キーを通過させつつ、staleAfter(最終使用日から 90 日後のタイムスタンプ)と lastUsedDate(人間が読みやすい日付)の 2 つの新しいフィールドを追加します。
Step 6: Filter for stale OpenAI keys
-
Filter ノードを追加し、名前を
Stale OpenAI keysにします。 -
Field で
5. Compute stale thresholdを選択します。 -
Filter 1 で条件を
staleAfter < Start of the flowに設定します。Start of the flow は、現在の実行が開始された時刻を表す組み込み変数です。
フロー実行時点でキーの staleAfter タイムスタンプが依然として過去であれば、そのキーは 90 日以上使用されていないことになります。
Step 7: Filter for never-used OpenAI keys
Never used OpenAI keys という名前の Filter ノードをもう 1 つ追加します。これは Step 4 の逆の条件になります。Field は再び 2. List OpenAI admin keys.data で、条件は data.last_used_at is null です。