コンプライアンス
概要
コンプライアンスAPIは、規制要件への準拠状況を管理・監視するためのエンドポイントを提供します。アクセスレビュー、データ保持ポリシー、コンプライアンスレポートなどの機能を提供します。
エンドポイント一覧
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /api/admin/compliance/status | コンプライアンス状態取得 |
| GET | /api/admin/compliance/access-reviews | アクセスレビュー一覧取得 |
| POST | /api/admin/compliance/access-reviews | アクセスレビュー作成 |
| GET | /api/admin/compliance/access-reviews/:id | アクセスレビュー詳細取得 |
| POST | /api/admin/compliance/access-reviews/:id/items/:itemId/approve | レビューアイテム承認 |
| POST | /api/admin/compliance/access-reviews/:id/items/:itemId/revoke | レビューアイテム取消 |
| POST | /api/admin/compliance/access-reviews/:id/complete | アクセスレビュー完了 |
| GET | /api/admin/data-retention/status | データ保持状態取得 |
| PUT | /api/admin/data-retention/policies | データ保持ポリシー更新 |
コンプライアンス状態取得
テナントのコンプライアンス状態の概要を取得します。
エンドポイント
GET /api/admin/compliance/status
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/compliance/status" \ -H "Authorization: Bearer {token}"レスポンス例
{ "overall_status": "compliant", "last_updated_at": 1706140800, "categories": [ { "name": "access_control", "display_name": "アクセス制御", "status": "compliant", "checks": [ { "name": "mfa_enabled", "display_name": "MFA有効化", "status": "passed", "message": "MFAが有効化されています" }, { "name": "password_policy", "display_name": "パスワードポリシー", "status": "passed", "message": "パスワードポリシーが設定されています" } ] }, { "name": "audit_logging", "display_name": "監査ログ", "status": "compliant", "checks": [ { "name": "audit_log_enabled", "display_name": "監査ログ有効", "status": "passed", "message": "監査ログが有効です" }, { "name": "audit_log_retention", "display_name": "監査ログ保持期間", "status": "passed", "message": "保持期間: 365日" } ] }, { "name": "access_review", "display_name": "アクセスレビュー", "status": "warning", "checks": [ { "name": "periodic_review", "display_name": "定期レビュー", "status": "warning", "message": "次回レビュー期限: 7日後" } ] } ], "pending_actions": [ { "type": "access_review", "message": "アクセスレビューが期限に近づいています", "due_date": "2024-01-29" } ]}アクセスレビュー一覧取得
アクセスレビューの一覧を取得します。
エンドポイント
GET /api/admin/compliance/access-reviews
クエリパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | - | 取得件数(デフォルト: 20) |
cursor | string | - | ページネーションカーソル |
status | string | - | ステータスでフィルタ |
レビューステータス
| ステータス | 説明 |
|---|---|
draft | 下書き |
in_progress | 進行中 |
completed | 完了 |
expired | 期限切れ |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/compliance/access-reviews?status=in_progress" \ -H "Authorization: Bearer {token}"レスポンス例
{ "items": [ { "id": "review_abc123", "name": "Q1 2024 アクセスレビュー", "type": "quarterly", "status": "in_progress", "scope": { "type": "role", "roles": ["admin", "editor"] }, "progress": { "total_items": 50, "reviewed_items": 30, "approved": 25, "revoked": 5 }, "due_date": "2024-01-31", "created_at": 1705881600, "created_by": "usr_admin001" } ], "total": 5, "cursor": null}アクセスレビュー作成
新しいアクセスレビューを作成します。
エンドポイント
POST /api/admin/compliance/access-reviews
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | ○ | レビュー名 |
type | string | ○ | レビュータイプ |
scope | object | ○ | レビュー対象のスコープ |
due_date | string | ○ | 期限(ISO 8601形式) |
reviewers | string[] | ○ | レビュワーのユーザーID |
description | string | - | 説明 |
レビュータイプ
| タイプ | 説明 |
|---|---|
quarterly | 四半期レビュー |
annual | 年次レビュー |
ad_hoc | アドホックレビュー |
certification | 認証レビュー |
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/compliance/access-reviews" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "name": "Q1 2024 管理者権限レビュー", "type": "quarterly", "scope": { "type": "role", "roles": ["tenant_admin", "system_admin"] }, "due_date": "2024-03-31", "reviewers": ["usr_reviewer001", "usr_reviewer002"], "description": "四半期の管理者権限レビュー" }'レスポンス例
{ "id": "review_xyz789", "name": "Q1 2024 管理者権限レビュー", "status": "draft", "scope": { "type": "role", "roles": ["tenant_admin", "system_admin"] }, "progress": { "total_items": 15, "reviewed_items": 0 }, "due_date": "2024-03-31", "created_at": 1706140800}アクセスレビュー詳細取得
指定されたアクセスレビューの詳細を取得します。
エンドポイント
GET /api/admin/compliance/access-reviews/:id
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/compliance/access-reviews/review_abc123" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "review_abc123", "name": "Q1 2024 アクセスレビュー", "type": "quarterly", "status": "in_progress", "scope": { "type": "role", "roles": ["admin", "editor"] }, "progress": { "total_items": 50, "reviewed_items": 30, "approved": 25, "revoked": 5 }, "items": [ { "id": "item_001", "user_id": "usr_abc123", "user_name": "山田 太郎", "role": "admin", "granted_at": 1673345600, "granted_by": "usr_admin001", "status": "pending", "last_activity_at": 1706054400 }, { "id": "item_002", "user_id": "usr_def456", "user_name": "佐藤 花子", "role": "editor", "granted_at": 1688169600, "granted_by": "usr_admin001", "status": "approved", "reviewed_at": 1706054400, "reviewed_by": "usr_reviewer001" } ], "reviewers": [ { "user_id": "usr_reviewer001", "user_name": "レビュワー1", "reviewed_count": 30 } ], "due_date": "2024-01-31", "created_at": 1705881600}レビューアイテム承認
アクセス権限を承認(維持)します。
エンドポイント
POST /api/admin/compliance/access-reviews/:id/items/:itemId/approve
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
comment | string | - | コメント |
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/compliance/access-reviews/review_abc123/items/item_001/approve" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "comment": "業務上必要な権限であることを確認" }'レビューアイテム取消
アクセス権限を取消(削除)します。
エンドポイント
POST /api/admin/compliance/access-reviews/:id/items/:itemId/revoke
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
reason | string | ○ | 取消理由 |
effective_date | string | - | 取消の有効日(デフォルト: 即時) |
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/compliance/access-reviews/review_abc123/items/item_003/revoke" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "reason": "担当業務の変更により不要となった", "effective_date": "2024-02-01" }'アクセスレビュー完了
アクセスレビューを完了としてマークします。
エンドポイント
POST /api/admin/compliance/access-reviews/:id/complete
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/compliance/access-reviews/review_abc123/complete" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "review_abc123", "status": "completed", "completed_at": 1706140800, "summary": { "total_items": 50, "approved": 45, "revoked": 5 }}データ保持状態取得
データ保持ポリシーの状態を取得します。
エンドポイント
GET /api/admin/data-retention/status
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/data-retention/status" \ -H "Authorization: Bearer {token}"レスポンス例
{ "policies": [ { "data_type": "audit_logs", "display_name": "監査ログ", "retention_days": 365, "current_oldest": "2023-01-22", "records_count": 1250000, "next_purge_at": "2024-01-23T00:00:00Z" }, { "data_type": "sessions", "display_name": "セッションデータ", "retention_days": 30, "current_oldest": "2023-12-23", "records_count": 50000, "next_purge_at": "2024-01-23T00:00:00Z" }, { "data_type": "deleted_users", "display_name": "削除済みユーザー", "retention_days": 90, "current_oldest": "2023-10-24", "records_count": 150, "next_purge_at": "2024-01-23T00:00:00Z" } ], "last_purge_at": "2024-01-22T00:00:00Z", "next_purge_at": "2024-01-23T00:00:00Z"}データ保持ポリシー更新
データ保持ポリシーを更新します。
エンドポイント
PUT /api/admin/data-retention/policies
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
policies | object[] | ○ | ポリシー設定のリスト |
リクエスト例
curl -X PUT "https://{tenant-domain}/api/admin/data-retention/policies" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "policies": [ { "data_type": "audit_logs", "retention_days": 730 }, { "data_type": "sessions", "retention_days": 60 } ] }'レスポンス例
{ "updated": true, "policies": [ { "data_type": "audit_logs", "retention_days": 730 }, { "data_type": "sessions", "retention_days": 60 } ], "updated_at": 1706140800}