開発者ツール

Go SDKの統合

Go サービス、Kubernetes コントローラー、展開パイプラインを BlackShield のセキュリティ体制 API に直接接続します。

外部依存性ゼロ

The core SDK relies only on the Go standard library. It adds no third-party packages or licenses to your binaries and container images.

組み込みの再試行とバックオフ

Transient network hiccups, 5xx gateway errors, and 429 rate limits retry automatically with exponential backoff and jitter.

ストリーミングと入力されたページング

Process thousands of findings or telemetry events without memory spikes using streaming NDJSON readers and typed cursor paginators.

インストール

モジュールを Go プロジェクトに追加します。

go get github.com/blackshield-security/blackshield-go

クイックスタート: クエリ結果

テナント API キーを使用してクライアントを初期化し、アクティブなセキュリティ検出結果を取得します。

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/blackshield-security/blackshield-go"
)

func main() {
    client, err := blackshield.NewClient(
        blackshield.WithAPIKey("bsk_live_your_api_key"),
    )
    if err != nil {
        log.Fatalf("client error: %v", err)
    }

    ctx := context.Background()
    page, err := client.Findings.List(ctx, blackshield.FindingsFilter{
        Severity: []string{"critical", "high"},
        Limit:    10,
    })
    if err != nil {
        log.Fatalf("query failed: %v", err)
    }

    for _, f := range page.Items {
        fmt.Printf("[%s] %s: %s\n", f.Severity, f.ID, f.Title)
    }
}

導入ポリシーの評価

プロモーションまたはリリースの前に、アーティファクトがセキュリティ ポリシーを満たしているかどうかを確認します。

decision, err := client.Policies.EvaluateDeploy(ctx, blackshield.DeployEvaluationRequest{
    ServiceID:    "payment-service",
    ArtifactURI:  "123456789.dkr.ecr.us-east-1.amazonaws.com/payments:v1.2.0",
    GitCommitSHA: "abcdef0123456789abcdef0123456789abcdef01",
    Environment:  "production",
})
if err != nil {
    log.Fatalf("policy evaluation failed: %v", err)
}

if !decision.Allowed {
    log.Fatalf("Release rejected: %s (Violations: %v)", decision.Reason, decision.Violations)
}

関連ガイド

Go SDKの統合