AWS Secrets Manager シークレットストレージ
Semaphore UI Enterprise では、キーストアのシークレットの外部ストレージとして、データベースの代わりに AWS Secrets Manager を使用できます。
設定オプション
キーストア → ストレージで AWS Secrets Manager ストレージを作成する際、次の項目を設定します。
| フィールド | 説明 |
|---|---|
| リージョン | シークレットが保存されている AWS リージョン (例: us-east-1)。必須。 |
| エン ドポイント URL | オプションのカスタムエンドポイント。標準の AWS API エンドポイントを使用する場合は空のままにします。LocalStack や VPC エンドポイントに便利です。 |
| IAM ロール / インスタンスプロファイルを使用 | 有効にすると、Semaphore は環境の AWS 認証情報チェーン (EC2 インスタンスプロファイル、ECS タスクロール、EKS IRSA など) を使用し、静的なアクセスキーを必要としません。 |
| アクセスキー ID | IAM ロールモードが無効な場合に必須。 |
| シークレットアクセスキー | IAM ロールモードが無効な場合に必須。データベースに保存するか、環境変数から読み取るか、ファイルから読み込むことができます。 |
IAM ロールとアクセスキーの比較
- IAM ロール / インスタンスプロファイル (AWS 上では推奨): IAM ロール / インスタンスプロファイルを使用を有効にし、Semaphore サーバーまたは runner ホストに、参照するシークレットの読み取り権限を付与します。長期間有効なキーは Semaphore に保存されません。
- アクセスキー: チェックボックスをオフのままにし、
secretsmanager:GetSecretValue(および同期用の関連する list/describe 権限) を持つ IAM ユーザーまたはロールのアクセスキーペアを指定します。
既存のストレージを編集する際、アクセスキー ID が保存されていない場合、Semaphore は IAM ロールモードであると推定します。
使い方
- プロジェクトでキーストア → ストレージを開き、AWS Secrets Manager ストレージを作成します。
- キーを作成または編集する際に、そのストレージを選択し、AWS Secrets Manager 内のシークレット名または ARN を指定します。
- 必要に応じて、同期パスを設定して、スケジュールに従ってシークレットを自動的にインポートします。
このストレージは読み取り専用モードで動作させることができます。
シークレットの同期
AWS Secrets Manager のシークレットは、他の外部ストレージと同様にキーストアにインポートして同期を維持できます。デフォルトのパス区切り文字は / です。リモートストレージからのシークレットの同期を参照してください。