# ユーザー単位での AI Studio アクセス制御

**Treasure AI Studio** を利用できるアカウントでは、デフォルトですべてのユーザーが Studio を使用できます。特定のユーザーのみにアクセスを許可したい場合は、Treasure AI REST API を通じて **ユーザー単位** で管理できます。アカウントが制限（オプトイン）モードに切り替えられると、アカウント管理者が付与した対象ユーザーのみが Studio を使用でき、それ以外のユーザーは拒否されます。

現在のリリースでは、これに対応する Treasure Console の UI はありません。ユーザー単位のアクセスは、以下で説明する API のみで管理します。

アカウントでユーザー単位のアクセス制限を有効化する
ユーザー単位の付与は、アカウントが **制限（オプトイン）モード** に切り替えられて初めて有効になります。それまでは、Treasure AI Studio を利用できるすべてのユーザーが、個別の付与の有無にかかわらず Studio を使用できます。制限モードは Treasure AI 側で有効化します。担当の **カスタマーサクセスマネージャー** にお問い合わせください。制限モードを有効化する際は、切り替えが反映される*前に*対象のユーザーへアクセスを付与し、利用が中断されないようにしてください。

## 認証と権限

これらのエンドポイントは、標準の Treasure AI REST API 認証を使用します。お使いのリージョンに対応するベース URL については、[REST API へのアクセス](/products/control-panel/security/accessing-rest-apis) および [Treasure API baseURLs](/apis/endpoints/endpoints) を参照してください。

- **Master API key** で認証し、`Authorization: TD1 <api_key>` ヘッダーで指定します。
- アクセスの付与と削除（`PUT` / `DELETE`）には、**アカウント管理者** ロールが必要です。
- ユーザーの現在のアクセス状態の取得（`GET`）は、アカウント管理者、委任管理者（delegated administrator）、または本人が実行できます。ユーザーは自分のアクセス状態を確認でき、管理者はアカウント内の任意のユーザーを確認できます。
- 対象のユーザーは **自分のアカウント** に属している必要があります。別アカウントのユーザー ID は見つかりません。


Treasure AI Studio アクセスのオプションキーは `treasure_ai_studio` で、許可される値は `full_access` のみです。

これらのエンドポイントは **API v3** と **API v4** の両方で利用できます。動作は同一ですが、v4 のパスでは `access_control` セグメントが省略されます（例: `/v3/access_control/users/:user_id/...` は `/v4/users/:user_id/...` になります）。以下の各操作で両方のパスを記載しています。

アクセスの変更が反映されるタイミング
アクセスは、Studio がユーザーにセッショントークンを発行するとき（サインイン時）に評価されるため、変更は次回サインインから反映されます。アクセスを付与すると、それ以降ユーザーは Studio セッションを開始できます。

アクセスを削除すると（制限モードのアカウントの場合）、そのユーザーに発行済みの Treasure AI 認証情報が即座に revoke されるため、Treasure AI のデータを使う操作はすぐに利用できなくなり、新しいセッションを開始することもできなくなります。ただし、**すでにサインインしているユーザー** は、サインアウトするかセッションが期限切れになるまで現在のセッションを維持し、その間は Treasure AI のデータに依存しない操作を引き続き利用できます。現在のリリースでは、管理者がアクティブなセッションを強制終了する手段はありません。即座に終了させるには、ユーザー自身がサインアウトする（またはセッションが期限切れになるのを待つ）必要があります。一度もアクセスを付与されていないユーザーは、サインイン時に拒否されます。

## ユーザーへの Studio アクセスの付与

ユーザーに Treasure AI Studio へのアクセスを付与します。

| HTTP メソッド  | リソース  | 説明 |
|  --- | --- | --- |
| PUT | `/v3/access_control/users/:user_id/profile_options/treasure_ai_studio` | ユーザーに Studio アクセスを付与します |
| PUT | `/v4/users/:user_id/profile_options/treasure_ai_studio` | API v4 での同一操作 |


### URI パラメーター

| パラメーター名  | 必須  | 型  | 説明 |
|  --- | --- | --- | --- |
| `user_id` | はい | Integer | アクセスを付与するユーザーの ID |


### リクエストボディ

| プロパティ名  | 必須  | 型  | 説明 |
|  --- | --- | --- | --- |
| `value` | はい | string | `full_access` を指定する必要があります。それ以外の値は受け付けられません。 |


### リクエスト例

```bash
$ curl -X PUT \
'https://api.treasuredata.com/v3/access_control/users/<user_id>/profile_options/treasure_ai_studio' \
-H 'Authorization: TD1 <api_key>' \
-H 'Content-Type: application/json' \
-d '{"value": "full_access"}'
```

### レスポンス例

Status: 200 OK

レスポンスは、そのユーザーのプロファイルオプションキーと解決済みの値のマップです。

```json
{
  "treasure_ai_studio": "full_access"
}
```

## ユーザーの Studio アクセスの削除

ユーザーの Treasure AI Studio の付与を削除します。ユーザーはアカウントのデフォルトの状態に戻り、アカウントが制限モードの場合は拒否されます。

| HTTP メソッド  | リソース  | 説明 |
|  --- | --- | --- |
| DELETE | `/v3/access_control/users/:user_id/profile_options/treasure_ai_studio` | ユーザーの Studio の付与を削除します |
| DELETE | `/v4/users/:user_id/profile_options/treasure_ai_studio` | API v4 での同一操作 |


### URI パラメーター

| パラメーター名  | 必須  | 型  | 説明 |
|  --- | --- | --- | --- |
| `user_id` | はい | Integer | アクセスを削除するユーザーの ID |


### リクエスト例

```bash
$ curl -X DELETE \
'https://api.treasuredata.com/v3/access_control/users/<user_id>/profile_options/treasure_ai_studio' \
-H 'Authorization: TD1 <api_key>'
```

### レスポンス例

Status: 204 No Content

レスポンスボディは空です。制限モードのアカウントでは、アクセスを削除すると、そのユーザーに発行済みの Treasure AI Studio 認証情報が即座に無効化されます。（デフォルト（全許可）モードの場合、未付与のユーザーも引き続き許可されるため、付与を削除しても即座の影響はありません。）

## ユーザーの現在のアクセス状態の確認

ユーザーの解決済みプロファイルオプション値を返します。Studio アクセスが現在付与されているかどうかを確認できます。

| HTTP メソッド  | リソース  | 説明 |
|  --- | --- | --- |
| GET | `/v3/access_control/users/:user_id/profile_options/treasure_ai_studio` | ユーザーの現在の Studio アクセス値を取得します |
| GET | `/v4/users/:user_id/profile_options/treasure_ai_studio` | API v4 での同一操作 |


### URI パラメーター

| パラメーター名  | 必須  | 型  | 説明 |
|  --- | --- | --- | --- |
| `user_id` | はい | Integer | アクセス状態を確認するユーザーの ID |


### リクエスト例

```bash
$ curl \
'https://api.treasuredata.com/v3/access_control/users/<user_id>/profile_options/treasure_ai_studio' \
-H 'Authorization: TD1 <api_key>'
```

### レスポンス例

Status: 200 OK

```json
{
  "treasure_ai_studio": "full_access"
}
```

値が `null` の場合はオプションが未設定であることを意味し、ユーザーはアカウントのデフォルトに従います。

## 監査

ユーザー単位のアクセス変更は [Premium Audit Log](/products/control-panel/security/auditlogs/premium-audit-log-events) に記録されるため、各ユーザーに Studio アクセスがいつ付与または削除されたかを確認できます。

## 次のステップ

- [ユーザー管理](/products/control-panel/security/users) — アカウント内のユーザーを管理する
- [REST API へのアクセス](/products/control-panel/security/accessing-rest-apis) — API キーと認証
- [Treasure AI Studio — アクセス制御](/products/ai-studio/security/access-control) — Studio 内でアクセス制御がどのように機能するか