##### VAULT ##### クラウドのキーマネージメントサービスに登録されたシークレットを `External Secrets Operator`_ を利用して kubernetes secret と同期させるための機能を提供します。 * マネージドサービス API を有効化します。 * `External Secrets Operator`_ を利用する際に必要となる SecretStore 及び ClusterSecretStore を登録します。 * Azure の場合は同時にキーコンテナを作成することができます。 +-------+--------+ | | 設定値 | +=======+========+ | Chart | vault | +-------+--------+ 対応サービス ============== * Azure: `Azure KeyVault`_ * Google Cloud: `Google Secret Manager`_ * AWS: `AWS Secrets Manager`_ パッケージの機能 ================ (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 -------------- .. literalinclude:: values/vault.values.yaml :language: yaml Schema reference ---------------- .. jsonschema:: schema/vault.schema.json Example ======= Example1. Azure KeyVault キーコンテナー作成 ------------------------------------------- .. literalinclude:: example/vault/example1_azure_vault.yaml :language: yaml Example2. Google Cloud Secret Manager 権限設定 ---------------------------------------------- .. literalinclude:: example/vault/example2_gcp_vault.yaml :language: yaml Example3. AWS Secret Manager 権限設定 ------------------------------------- .. literalinclude:: example/vault/example3_aws_vault.yaml :language: yaml Change Log ========== .. changelog:: :changelog-url: https://msp-project-gcp.an.r.appspot.com/managed/vault.html :github: https://github.com/sbopsv/MASTER-CONTAINER-HELM-VAULT/releases/ .. _MASTER-CONTAINER-HELM-VAULT: https://github.com/sbopsv/MASTER-CONTAINER-HELM-VAULT .. _Azure KeyVault: https://azure.microsoft.com/ja-jp/services/key-vault/ .. _Google Secret Manager: https://cloud.google.com/secret-manager .. _External Secrets Operator: https://external-secrets.io/ .. _AWS Secrets Manager: https://docs.aws.amazon.com/ja_jp/secretsmanager/latest/userguide/intro.html .. _UserAssignedIdentity: https://azure.github.io/azure-service-operator/reference/managedidentity/v1api20181130/#managedidentity.azure.com/v1api20181130.UserAssignedIdentity .. _UserConfig: https://sbopsv.github.io/cnap-tech-document/usermanual/4-userconfig.html