コンテンツにスキップ

コンプライアンス

概要

コンプライアンス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

リクエスト例

Terminal window
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

クエリパラメータ

パラメータ必須説明
limitinteger-取得件数(デフォルト: 20)
cursorstring-ページネーションカーソル
statusstring-ステータスでフィルタ

レビューステータス

ステータス説明
draft下書き
in_progress進行中
completed完了
expired期限切れ

リクエスト例

Terminal window
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

リクエストボディ

フィールド必須説明
namestringレビュー名
typestringレビュータイプ
scopeobjectレビュー対象のスコープ
due_datestring期限(ISO 8601形式)
reviewersstring[]レビュワーのユーザーID
descriptionstring-説明

レビュータイプ

タイプ説明
quarterly四半期レビュー
annual年次レビュー
ad_hocアドホックレビュー
certification認証レビュー

リクエスト例

Terminal window
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

リクエスト例

Terminal window
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_email": "[email protected]",
"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_email": "[email protected]",
"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

リクエストボディ

フィールド必須説明
commentstring-コメント

リクエスト例

Terminal window
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

リクエストボディ

フィールド必須説明
reasonstring取消理由
effective_datestring-取消の有効日(デフォルト: 即時)

リクエスト例

Terminal window
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

リクエスト例

Terminal window
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

リクエスト例

Terminal window
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

リクエストボディ

フィールド必須説明
policiesobject[]ポリシー設定のリスト

リクエスト例

Terminal window
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
}