コンプライアンスフレームワークGraphQL
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
を使用して、トップレベルグループのコンプライアンスフレームワークを管理します。
前提要件
- コンプライアンスフレームワークを作成、編集、削除するには、次のいずれかのユーザーである必要があります:
- トップレベルグループのオーナーロールが必要です。
admin_compliance_frameworkカスタムパーミッションを持つカスタムロールを割り当てられていること。
コンプライアンスフレームワークを作成
トップレベルグループの新しいコンプライアンスフレームワークを作成します。
コンプライアンスフレームワークを作成するには、createComplianceFrameworkミューテーションを使用します:
mutation {
createComplianceFramework(input: {
namespacePath: "my-group",
params: {
name: "SOX Compliance",
description: "Sarbanes-Oxley compliance framework for financial reporting",
color: "#1f75cb",
default: false
}
}) {
errors
framework {
id
name
description
color
default
namespace {
name
}
}
}
}コンプライアンスフレームワークは、以下の場合に作成されます:
- 返された
errorsオブジェクトが空である。 - が
200 OKで応答する。
要件を持つフレームワークを作成
- プラン: Ultimate
特定の要件とコントロールを含むフレームワークを作成できます:
mutation {
createComplianceFramework(input: {
namespacePath: "my-group",
params: {
name: "Security Framework",
description: "Security compliance framework with SAST and dependency scanning",
color: "#e24329",
default: false
}
}) {
errors
framework {
id
name
description
color
default
namespace {
name
}
}
}
}フレームワークを作成した後、作成ミューテーションによって返されるフレームワークを使用して、要件を追加できます。
コンプライアンスフレームワークの一覧表示
トップレベルグループのすべてのコンプライアンスフレームワークをリストします。
groupクエリを使用して、トップレベルグループのコンプライアンスフレームワークのリストを表示できます:
query {
group(fullPath: "my-group") {
id
complianceFrameworks {
nodes {
id
name
description
color
default
pipelineConfigurationFullPath
}
}
}
}結果のリストが空の場合、そのグループのコンプライアンスフレームワークは存在しません。
コンプライアンスフレームワークを更新
トップレベルグループの既存のコンプライアンスフレームワークを更新します。
コンプライアンスフレームワークを更新するには、updateComplianceFrameworkミューテーションを使用します。グループのすべてのコンプライアンスフレームワークを一覧表示して、フレームワークを取得できます。
mutation {
updateComplianceFramework(input: {
id: "gid://gitlab/ComplianceManagement::Framework/1",
params: {
name: "Updated SOX Compliance",
description: "Updated Sarbanes-Oxley compliance framework",
color: "#6b4fbb",
default: true
}
}) {
errors
framework {
id
name
description
color
default
namespace {
name
}
}
}
}コンプライアンスフレームワークは、以下の場合に更新されます:
- 返された
errorsオブジェクトが空である。 - が
200 OKで応答する。
コンプライアンスフレームワークを削除
トップレベルグループからコンプライアンスフレームワークを削除します。
コンプライアンスフレームワークを削除するには、destroyComplianceFrameworkミューテーションを使用します。グループのすべてのコンプライアンスフレームワークを一覧表示して、フレームワークを取得できます。
mutation {
destroyComplianceFramework(input: {
id: "gid://gitlab/ComplianceManagement::Framework/1"
}) {
errors
}
}コンプライアンスフレームワークは、以下の場合に削除されます:
- 返された
errorsオブジェクトが空である。 - が
200 OKで応答する。
コンプライアンスフレームワークをプロジェクトに適用
1つ以上のコンプライアンスフレームワークをプロジェクトに適用します。
前提要件:
- プロジェクトのメンテナーまたはオーナーのロールが必要です。
- プロジェクトは、コンプライアンスフレームワークを持つグループに属している必要があります。
プロジェクトにコンプライアンスフレームワークを適用するには、projectUpdateComplianceFrameworksミューテーションを使用します:
mutation {
projectUpdateComplianceFrameworks(input: {
projectId: "gid://gitlab/Project/1",
complianceFrameworkIds: [
"gid://gitlab/ComplianceManagement::Framework/1",
"gid://gitlab/ComplianceManagement::Framework/2"
]
}) {
errors
project {
id
complianceFrameworks {
nodes {
id
name
color
}
}
}
}
}フレームワークは、以下の場合に適用されます:
- 返された
errorsオブジェクトが空である。 - が
200 OKで応答する。
プロジェクトからコンプライアンスフレームワークを削除
プロジェクトからすべてのコンプライアンスフレームワークを削除するには、空の配列を渡します:
mutation {
projectUpdateComplianceFrameworks(input: {
projectId: "gid://gitlab/Project/1",
complianceFrameworkIds: []
}) {
errors
project {
id
complianceFrameworks {
nodes {
id
name
}
}
}
}
}要件とコントロールの操作
を使用して、コンプライアンスフレームワークの要件とコントロールを管理できます。
フレームワーク要件をクエリ
- プラン: Ultimate
コンプライアンスフレームワークの要件とコントロールを表示するには:
query {
group(fullPath: "my-group") {
complianceFrameworks {
nodes {
id
name
requirements {
nodes {
id
name
description
controls {
nodes {
id
name
controlId
controlType
}
}
}
}
}
}
}
}フレームワークに要件を追加
- プラン: Ultimate
コンプライアンスコントロールを使用して、既存のフレームワークに要件を追加するには:
mutation {
complianceFrameworkRequirementCreate(input: {
frameworkId: "gid://gitlab/ComplianceManagement::Framework/1",
name: "Security Scanning Requirement",
description: "Ensure security scanning is enabled for all projects",
controlIds: [
"scanner_sast_running",
"scanner_dep_scanning_running",
"scanner_secret_detection_running"
]
}) {
errors
requirement {
id
name
description
controls {
nodes {
id
name
controlId
}
}
}
}
}外部コントロールの追加
- プラン: Ultimate
外部コントロールを使用して要件を追加するには:
mutation {
complianceFrameworkRequirementCreate(input: {
frameworkId: "gid://gitlab/ComplianceManagement::Framework/1",
name: "External Approval Requirement",
description: "Require external system approval for deployments",
externalControls: [{
name: "ServiceNow Approval",
externalUrl: "https://mycompany.service-now.com/api/approval",
hmacSharedSecret: "my-secret-key"
}]
}) {
errors
requirement {
id
name
description
controls {
nodes {
id
name
controlType
externalUrl
}
}
}
}
}要件を更新
- プラン: Ultimate
既存の要件を更新するには:
mutation {
complianceFrameworkRequirementUpdate(input: {
id: "gid://gitlab/ComplianceManagement::Requirement/1",
name: "Updated Security Requirement",
description: "Updated security scanning requirement with additional controls",
controlIds: [
"scanner_sast_running",
"scanner_dep_scanning_running",
"scanner_secret_detection_running",
"scanner_container_scanning_running"
]
}) {
errors
requirement {
id
name
description
controls {
nodes {
id
name
controlId
}
}
}
}
}要件を削除
- プラン: Ultimate
フレームワークから要件を削除するには:
mutation {
complianceFrameworkRequirementDestroy(input: {
id: "gid://gitlab/ComplianceManagement::Requirement/1"
}) {
errors
}
}エラー処理
経由でコンプライアンスフレームワークを操作する場合、次の一般的なエラーが発生する可能性があります:
- Framework name already exists(フレームワーク名が既に存在します): 各フレームワーク名は、グループ内で一意である必要があります。
- Invalid color format(無効な色の形式): 色は16進形式である必要があります(例:
#1f75cb)。 - 権限が不十分です: グループオーナーまたは
admin_compliance_framework権限を持つユーザーのみがフレームワークを管理できます。 - Invalid control ID(無効なコントロール): コントロールは、サポートされているコンプライアンスコントロールと一致する必要があります。
応答のerrorsフィールドを常に確認して、ミューテーション中に発生する問題を処理してください。
関連トピック
- コンプライアンスフレームワーク
- コンプライアンスセンター
- GraphQL APIリファレンスGraphQL APIリファレンス