Skip to content

Secret の登録

ここでは、AssemblyLineを実行するために必要なパラメータとして、Secretを登録します。

Deployment Secretの登録

Qmonus Value Streamでは、Deployment Secret編集画面を通して各アプリケーションで利用する機密情報を、ユーザが利用する機密情報の管理サービス (e.g. Google CloudのSecret Manager, AzureのKey Vault, AWSのSecrets Manager etc.)に保存できます。 そして、その登録した機密情報の名前をAssemblyLineからのパイプラインステージを実行する際の引数として利用できます。

また、AssemblyLine manifestの各パイプラインステージに記述したパラメータバインディング定義(spec.annotations)を評価して実際にPipelineに渡される値、および定義が漏れている値を、AssemblyLineの詳細画面から確認できます。 これらの機能を用いて、Pipelineの実行パラメータを検証しながら機密情報を設定できます。

Deployment Secretを設定する主な流れは以下のとおりです。

  1. AssemblyLineの詳細画面にて、各パイプラインステージのSecretsとして表示されているPipeline実行時引数が正しく設定されていることを確認します。
  2. 設定されたPipeline実行時引数に不足もしくは誤りがある場合、Deployment Secretの設定を修正します。
  3. 再度AssemblyLineの詳細画面を確認し、Deployment Secretの修正により、実行時引数が正しく設定されていることを確認します。まだ不備がある場合は、再度Deployment Secretを修正します。

Secretの確認

AssemblyLineの詳細画面にて、実際にSecretsとして表示されているPipeline実行時引数の値を確認します。

  1. 実行したいAssemblyLineの詳細画面を開きます。
  2. パイプラインステージを選択します。
  3. パイプラインステージで実行されるPipelineに必要な機密情報と、設定された値が表示されます。
Secretの確認
項目詳細
NamePipelineの実行時引数のkey
Key機密情報の管理サービスにおいて登録されている機密情報の名前
VersionKeyに表示された機密情報のバージョンおよび作成日

Deployment Secretの設定

Pipelineの実行時引数として利用する値は、Deployment Secretに機密情報の管理サービスにおいて登録されている機密情報の名前およびそのバージョンを設定することで追加されます。

  1. AssemblyLineの詳細画面にて、Deployment Secretを設定したいパイプラインステージを選択します。
  2. 画面中部に存在する、EDIT DEPLOYMENT SECRET を押下します。
  3. 設定画面が表示されますので、まず Provider Kind を選択します。
  4. 次にProvider Kindごとの接続に必要な値を入力し、SYNC SECRET BACKENDを押下します。

gcp の場合

  • Project ID: 利用するGoogle CloudのプロジェクトID

azure の場合

  • Tennant ID: AzureのテナントID
  • Key Container Name: Key Vaultを登録するキー コンテナ名

aws の場合

  • Account ID: AWSのアカウントID
  • Region Name: Secretを登録するリージョン
  • Role Name: OIDCプロバイダに紐付けられたロール名

OIDCプロバイダの設定方法に関しては AWS の OIDC 認証設定 を参照してください。

  1. 上記が正常に完了すれば、上記で設定した機密情報の管理サービスにおいて登録された情報が選択できるようになるため、KeyVersionを設定します。

INFO

AWS Secrets Manager を利用する場合、Secret の Version は作成日時の新しい2つのみ使用でき、古いものは自動で削除されます。 また、1番新しい Version は削除できません。

2つ以上のバージョンを使用したい場合、AWS CLI でバージョンにラベルを追加します。 ラベル付きのバージョンは削除されません。 ラベルの追加方法は Secrets Manager シークレットの概要 - シークレットバージョン を参照してください。

  1. 設定内容が正しいことを確認し、保存します。 Deployment Secretの設定
  2. AssemblyLineの詳細画面を確認し、Secretsに表示された実行時引数が正しく設定されていることを確認します。

登録したSecretの利用

機密情報の管理サービスに登録された機密情報をアプリケーションで利用するには、External Secret Operatorを利用してください。 External Secret Operatorを利用することで、機密情報の管理サービスに登録された機密情報をKubernetesのsecretリソースとして利用できるようになります。 最終的にアプリケーションでは、External Secret Operatorによって作成されたKubernetesのsecretリソースをmountすることで、Qmonus Value Streamにおいて設定した機密情報の値を利用できます。

External Secret Operatorの詳細と導入に関しては応用編 : 機密情報管理を参考にしてください。