機能 6: クラウドシークレットマネージャー統合

概要

Semaphore は現在、すべての認証情報を自身のデータベースに保存しています。クラウドプラットフォームを使用する組織は、実行時にクラウドプロバイダーのシークレット管理サービスからシークレットを直接取得する方法を必要としています。これにより、認証情報の重複を避け、既存のローテーションポリシーを活用できます。この機能は、AWS Secrets Manager および Azure Key Vault とのネイティブ統合を Enterprise 専用機能として追加します。

動機

詳細仕様

Enterprise

6.1 AWS Secrets Manager 統合

目標: AWS Secrets Manager から実行時にシークレットを取得し、チームが Semaphore のデータベースに認証情報を複製することなく、既存の AWS シークレットインフラストラクチャを活用できるようにします。

要件:

{
  "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

6.2 Azure Key Vault 統合

目標: Azure Key Vault から実行時にシークレットを取得し、Azure を使用する組織が Semaphore に保存せずに認証情報を一元管理およびローテーションできるようにします。

要件:

{
  "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
}

関連イシュー: #2248, #3170

6.3 統一外部シークレット参照

目標: サポートされている任意のクラウドプロバイダーのシークレットを指す共通のキーストアエントリタイプを提供します。

要件:

6.4 シークレットキャッシュ

目標: 解決済みのシークレットをメモリにキャッシュすることで、クラウドプロバイダーへの API 呼び出しを削減します。

要件:

データベーススキーマの変更

新しいテーブル:

変更されるテーブル:

API Endpoints

設定

新しい設定オプション:

Key Env Var Default 説明
secret_cache_ttl SEMAPHORE_SECRET_CACHE_TTL 5m 解決済み外部シークレットのデフォルトのメモリ内キャッシュ TTL
secret_resolve_timeout SEMAPHORE_SECRET_RESOLVE_TIMEOUT 10s シークレット解決時のクラウドプロバイダー API レスポンスの最大待機時間

You might also like