Semaphore は現在、すべての認証情報を自身のデータベースに保存しています。クラウドプラットフォームを使用する組織は、実行時にクラウドプロバイダーのシークレット管理サービスからシークレットを直接取得する方法を必要としています。これにより、認証情報の重複を避け、既存のローテーションポリシーを活用できます。この機能は、AWS Secrets Manager および Azure Key Vault とのネイティブ統合を Enterprise 専用機能として追加します。
目標: AWS Secrets Manager から実行時にシークレットを取得し、チームが Semaphore のデータベースに認証情報を複製することなく、既存の AWS シークレットインフラストラクチャを活用できるようにします。
要件:
aws_secrets_manager。field セレクターを使用した JSON 構造のシークレットのサポート。個別の値を抽出できます(例: {"username": "admin", "password": "..."} → password を抽出)。{
"name": "Production AWS",
"type": "aws_secrets_manager",
"region": "us-east-1",
"auth_method": "iam_role",
"role_arn": "arn:aws:iam::123456789:role/semaphore-secrets",
"external_id": "optional-external-id"
}
{
"type": "external",
"backend": "aws_secrets_manager",
"secret_name": "production/db_password",
"field": "password",
"aws_config_id": 1
}
関連イシュー: #2248
目標: Azure Key Vault から実行時にシークレットを取得し、Azure を使用する組織が Semaphore に保存せずに認証情報を一元管理およびローテーションできるようにします。
要件:
azure_key_vault。{
"name": "Production Azure",
"type": "azure_key_vault",
"vault_url": "https://my-vault.vault.azure.net",
"auth_method": "managed_identity",
"tenant_id": "...",
"client_id": "..."
}
{
"type": "external",
"backend": "azure_key_vault",
"secret_name": "db-password",
"version": "latest",
"azure_config_id": 1
}
目標: サポートされている任意のクラウドプロバイダーのシークレットを指す共通のキーストアエントリタイプを提供します。
要件:
目標: 解決済みのシークレットをメモリにキャッシュすることで、クラウドプロバイダーへの API 呼び出しを削減します。
要件:
cache_ttl フィールド(例: "cache_ttl": "5m")。新しいテーブル:
secret_backend — クラウドプロバイダーの設定を保存(project_id, type, name, config JSON, created_at, updated_at)変更されるテーブル:
access_key — カラムの追加:
external_backend_id (integer, nullable, FK to secret_backend) — クラウドプロバイダー設定へのリンクexternal_reference (JSON, nullable) — シークレットポインターを保存(ARN, vault URL, シークレット名, field, バージョン)GET/POST /api/project/{id}/secret-backends — バックエンド設定の一覧/作成PUT/DELETE /api/project/{id}/secret-backends/{backend_id} — バックエンドの更新/削除POST /api/project/{id}/secret-backends/{backend_id}/test — 接続性と認証のテストPOST /api/project/{id}/secret-backends/{backend_id}/resolve — シークレット参照の解決(バリデーション用)新しい設定オプション:
| Key | Env Var | Default | 説明 |
|---|---|---|---|
secret_cache_ttl |
SEMAPHORE_SECRET_CACHE_TTL |
5m |
解決済み外部シークレットのデフォルトのメモリ内キャッシュ TTL |
secret_resolve_timeout |
SEMAPHORE_SECRET_RESOLVE_TIMEOUT |
10s |
シークレット解決時のクラウドプロバイダー API レスポンスの最大待機時間 |