VAULT

クラウドのキーマネージメントサービスに登録されたシークレットを External Secrets Operator を利用して kubernetes secret と同期させるための機能を提供します。

  • マネージドサービス API を有効化します。

  • External Secrets Operator を利用する際に必要となる SecretStore 及び ClusterSecretStore を登録します。

  • Azure の場合は同時にキーコンテナを作成することができます。

設定値

Chart

vault

対応サービス

パッケージの機能

(Cluster)SecretStore の作成

SecretStore 及び ClusterSecretStore は Kubernertes クラスタから Secrets Manager 等のクラウドキー管理サービス内に保存された 暗号化情報を取得して、Kubernetes Secret を作成するために必要なアクセスポイントをマネージドクラスタ内に作成します 。

  • SecretStore: SecretStore を作成した Namespace 内でのみ有効なアクセスポイント。

  • ClusterSecretStore: マネージドクラスタ全体で有効なアクセスポイント。

values の指定で secretStores[].clusterScope を true に設定すると、ClusterSecretStore が作成され、false を設定すると SecretStore が作成されます。

SecretStore アクセス権の設定

クラウドのキーマネージメントサービスに SecretStore からアクセスするためのロール設定は自動で行われます。 デフォルトで新規に principal(AWS: Role, Azure: ManagedID, Google: ServiceAccount) が作成され権限が付与されますが、 任意の principal を指定することも可能です。

Values

Default values

# yaml-language-server: $schema=values.schema.json
keepOnDelete: true

secretStores: []
# - name: test            # SecretStore 名(必須)
#   namespace: staging    # clusterScope=false の場合 SecretStore を作成する Namespace。未指定の場合は Application の配置先 Namespace が設定される
#   serviceAccount:
#     name: staging       # SecretsStore が利用する kubernetes serviceaccount(KSA)(SecretStore と同一 namespace に作成される)
#     useExists: true     # 既存の serviceaccount を利用する場合は true を設定する
# - name: cluster-store
#   clusterScope: true    # ClusterScretStore を作成する場合は true
#   serviceAccount:
#     name: cluster-store
#     namespace: staging  # "clusterScope=true の場合のみ利用する KSA の存在する Namespace を指定。未指定の場合は Application の配置先 Namespace が設定される"


principal:
  create: true
  # name:                 # AWS: Role, Azure ManagedID, Google: ServiceAccount の名前を指定(デフォルトでは自動作成)
  # resourceGroup:        # Azure でリソースグループを指定したい場合に利用

secretManager:
  # name:                 # Azure でキーコンテナ名を指定する場合に利用(デフォルトはリリース名。 Azrere の場合は必須で指定する)
  # location:             # AWS 及び Azure で region, location を指定する(デフォルトでクラスタと同じロケーションが設定される)
  create: true            # Azure keyvault のキーコンテナ作成要否
  sku: standard
  enableSoftDelete: true  # Azure keyvault のパラメータ
  networkPolicies:
    bypass: AzureServices # Azure keyvault のパラメータ
    defaultAction: Allow  # Azure keyvault のパラメータ
  secrets: []
  # - db_password         # 特定のシークレットにのみアクセス権を付与する場合にシークレット名を列挙する(AWS, Google のみ)

monitoring: {}

Schema reference

type

object

properties

  • keepOnDelete

作成したリソースをアンインストール時に残す場合は true

type

boolean

default

True

  • secretStores

ESO SeretStore に関する設定

type

array

items

type

object

properties

  • clusterScope

true の場合 ClusterSecretStore が作成され、false の場合は SecretStore が作成される

type

boolean

default

False

  • name

SecretStore 名 (未指定の場合はリリース名が設定される)

type

string

maxLength

63

  • namespace

SecretStore を作成する Namespace。clusterScope=true の場合は指定不要。

type

string

  • serviceAccount

SecretStore の使用する Kubernetes ServiceAccount (KSA) の設定

type

object

properties

  • name

KSA 名。未指定の場合は リリース名+パッケージ名が設定される

type

string

maxLength

30

minLength

5

  • namespace

clusterScope=true の場合のみ利用する KSA の存在する namespace を指定。

type

string

  • useExists

既存の KSA を使用する場合は true を設定

type

boolean

default

False

  • secretManager

クラウドのシークレット管理サービス設定, AWS: SecretsManager, Azure: KeyVault, Google: SecretManager

type

object

properties

  • create

Azure の場合のみ KeyVaultのキーコンテナ作成要否を指定

type

boolean

default

True

  • name

Azure の場合のみ KeyVault に作成するコンテナ名を指定

type

string

default

リリース名

  • location

シークレット管理のサービスロケーションを指定, AWS: region を指定, Azure: location を指定, Google: 設定不要

type

string

default

クラスタのロケーション

  • secrets

特定の secret にのみアクセス権限を与える場合、対象の secret を列挙する (google, aws で使用可)

type

array

items

type

string

  • tenantId

key コンテナを配置する tenantId

type

string

  • sku

Azure の場合のみ KeyVault sku を指定.

type

string

enum

standard, premium

default

standard

  • resourceGroup

Azure の場合のみキーコンテナを作成するリソースグループを指定

type

string

  • enableSoftDelete

Azure の場合のみ論理的な削除をに有効する場合指定

type

boolean

default

True

  • networkPolicies

Azure の場合のみ NetworkPolicy を指定

type

object

properties

  • bypass

type

string

enum

AzureServices, None

default

AzureServices

  • defaultAction

type

string

enum

Allow, Deny

default

Allow

  • principal

(Cluster)SecretStore がのクラウドシークレット管理サービスにアクセスする際に利用するプリンシパルの設定

type

object

properties

  • name

プリンシパル名 AWS: Role 名, Azure: Managed ID 名, Google: ServiceAccount 名を指定(Azure の場合のみ必須)

type

string

  • create

既存のプリンシパルを利用する場合は false を設定

type

boolean

default

True

  • clientId

Azure の場合のみ Managed ID のクライアントID を指定(Application リソースによって自動的に設定されるため、指定不要)

type

string

  • resourceGroup

Azure の場合のみ Managed ID のリソースグループを指定

type

string

Example

Example1. Azure KeyVault キーコンテナー作成

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: keyccontainer
  namespace: staging
spec:
  chart:
    name: vault
    version: <latest>
  settings:
    secretManager:
      name: example
    secretStores:
      name: example-store
      namespace: staging
    keepOnDelete: false

Example2. Google Cloud Secret Manager 権限設定

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: keyccontainer
  namespace: staging
spec:
  chart:
    name: vault
    version: <latest>
  settings:
    secretStores:
      name: example-store
      namespace: staging
    keepOnDelete: false

Example3. AWS Secret Manager 権限設定

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: keyccontainer
  namespace: staging
spec:
  chart:
    name: vault
    version: <latest>
  settings:
    secretStores:
      name: example-store
      namespace: staging
    keepOnDelete: false

Change Log

1.0.2

Released on 2025-08-07

What's Changed

パッケージ内で利用しているライブラリの更新を行いました。

1.0.1

Released on 2025-07-22

機能と改善

既存のAzure キーコンテナを利用した(Cluster)SecretStoreの作成が可能になりました

1.0.0

Released on 2025-06-11

What's Changed

<重大な変更>

  • Values の構成を見直しました

<機能と改善>

  • Azure RBAC による認証に移行しました(ロールアサインメントによるアクセス権の設定が可能になりました)
  • 複数の SecretStore を同時に作成できるようになりました。