1
1

CipherTrust Secrets Management (CSM)をためす

Last updated at Posted at 2024-07-05

CSM概要

CipehrTrust Secrets Management は、AkeylessのSaaSベースの第3世代のシークレット管理ソリューションです。
主な特徴

  • SaaSベースのため、従来製品と比較し総コストを抑えることができます(70%削減の事例あり)
  • エンタープライズ向けに設計された製品であり、マルチクラウド/オンプレミス混在の環境のシークレットを一元管理する事ができます
  • 特許技術のDFCによりCloud Act法等でクラウド事業者にデータ開示要求があった場合でも、シークレットを開示されることはありません。(FIPS 140-2認定)
  • Static Secret, Dynamic Secret(一時的なSecret)のサポート

CSM-Overview.png

製品HP

YouTube

90日間の無償トライアル

"90 days Free Trail" にて、無料にてお試しいただけます。

目的

最短でCSMをセットアップし、シークレット管理が始められるまでの手順を確認します

参照ドキュメント

手順

製品ドキュメントの High Level Integration Process に沿って解説します

Configure Secrets Managementの設定手順が複雑なため、Akeylessで "Configuration Tool"を提供しており、本書ではこちらを利用した手順を解説しています。

CipherTrust Manager の デプロイ

下記の記事を参考に、CiperTrust Manager のデプロイを行って下さい
(今回のCSM利用では"Trial Evaluation" のアクティベーションは必要ありません)

CipherTrust Managerへのログイン

CipherTrust Manager へ管理者"admin"でログインします
"Secrets Management"の"Tile"が表示されていることが確認できます。(赤枠)
初期状態では、Akeyless とのコンフィグレーションが完了していないため、グレーアウト表示され、まだ利用できません

CSM-1-1a.png

"secrets-manager"サービスの有効化

(CM v2.17以降)
Admin Settings > Services を選択します。
"secrets-manager"サービスの"Enable"ボタンをクリックし、有効化を行います。

Akeyless アカウントの作成

ブラウザで https://(CipherTrust Manager ホスト名/IPアドレス)/akeyless-console/へアクセスします

CSM-2-1a.png

”Sign up"をクリックします

CSM-2-2.png

"Email"を入力、"End User License Agreement"及び"Privacy Policy"をご確認いただき、チェックボックスをクリック、"Let's Get Started"をクリックします

CSM-2-4.png

"Check your inbox"のメッセージが表示されます
メールボックスを確認します

CSM-2-5.png

メールボックスに Akeylessからのメールが送られていることが確認できます
"Activate Your Account"をクリックします

CSM-2-6a.png

"Access ID"及び"Access Key"が作成されました
"Save to .CSV file"をクリックし、"Access ID"及び"Access Key"を保存します

AkeylessへのCM接続の設定

Configuration Tool のダウンロード

ご利用の環境向けの "Configration Tool" のダウンロードを行います

(本記事では、以降 Windowsを例に記述します)

Configuration Tool の実行

Powershell を開きます
Configuration Tool を "-help"オプション付きで実行し、コンフィグレーションに必要なパラメータを確認します

PS C:\Users\Administrator\Downloads> .\CipherTrust_windows_v0.0.6.exe -help
Usage of C:\Users\Administrator\Downloads\CipherTrust_windows_v0.0.6.exe:
  -akl-admin-access-id string
        the Akeyless admin access id
  -akl-admin-access-key string
        the Akeyless admin access key
  -akl-am-name string
        the auth method name (default "SSO")
  -akl-key-name string
        the Akeyless default encryption key name
  -akl-role-name string
        the role name (default "SSO")
  -cm-group string
        limit Gateway admins to group (default "admin")
  -cm-pass string
        the CipherTrust password
  -cm-rotate-key string
        with rotate Auth Key (default "true")
  -cm-url string
        the CipherTrust url
  -cm-user-name string
        the CipherTrust user name
PS C:\Users\Administrator\Downloads>
パラメータ 説明
-akl-admin-access-id the Akeyless admin access id 今回作成したAkeylessアカウントの Access ID
-akl-admin-access-key the Akeyless admin access key 今回作成したAkeylessアカウントの Access Key
-akl-am-name the auth method name (default "SSO") 省略
-akl-key-name the Akeyless default encryption key name 任意 "MY_ZK_DFC_KEY"
-akl-role-name the role name (default "SSO") 省略
-cm-group limit Gateway admins to group (default "admin") 省略
-cm-pass the CipherTrust password CM管理者”admin"パスワード
-cm-rotate-key with rotate Auth Key (default "true") 省略
-cm-url the CipherTrust url CM IPアドレス(ホスト名)
-cm-user-name the CipherTrust user name CM管理者"admin"

実行例

PS C:\Users\Administrator\Downloads> .\CipherTrust_windows_v0.0.6.exe -akl-admin-access-id p-n8dqv9o9risxam -akl-admin-access-key FJ8p6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXAWzs= -akl-key-name MY_ZK_DFC_KEY -cm-url https://35.78.106.180 -cm-user-name admin -cm-pass Thales123!
got cipher trust token,
rotate Auth Key
successfully list Auth Key
successfully got akeyless token
successfully create new JWT auth method with access-id  p-p0ig45cy24pvom
successfully create role  SSO
successfully create association role auth method  SSO p-p0ig45cy24pvom
successfully create association role auth method  admin p-p0ig45cy24pvom
successfully got Gateway-admin new api-key  p-lfkgl1i3l09vam 4440YXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXb/bNo=
successfully create a gateway connection  4c2ac794-1634-4d8d-9cfc-8833fcafdf03
successfully create a gateway configuration  6a4684ec-669a-47e7-bfd0-1e0f55e82f5c
restarting CipherTrust
| successfully restart  👍
successfully create protection key MY_ZK_DFC_KEY
successfully set default zero-knowledge protection key
successfully set gateway url
successfully set access permissions for gateway admin group
PS C:\Users\Administrator\Downloads>

Configuration Toolで生成された、”Gateway-admin"の Access ID と Access Keyは、Akeyless Gatewayの利用で必要になりますので、値を保存します。

シークレット管理操作

再度、CipherTrust Manager へ管理者"admin"でログインします
Akeyless とのコンフィグレーションが完了済みのため、Tileが正常表示されるようになりました。(赤枠)
"Secrets Management"のTileをクリックします

CSM-4-3a.png

Akeyless Gateway コンソールが表示されることを確認します

CSM-4-4.png

以上で、Akeyless Gatewayのコンフィグレーションは完了しました

あらかじめ生成済みの Static Secret である"MyFirstSecret"をクリックすると、このSecretの各種情報が表示されます

CSM-4-5.png

"目"のアイコンをクリックすると、Secretの値"My First Secret Value"が確認できます
CSM-4-6a.png

CLIの導入

Akeyless Gateway コンソールと同様に、CLIにて、Secretの値を確認ししてみます

Akeyless CLI のインストール

今回は Linuxを例に表記しております。その他の環境や、詳細についてはドキュメント "CLI" をご参照下さい

Akeyless CLIのダウンロードを行います

$ curl -o akeyless https://akeyless-cli.s3.us-east-2.amazonaws.com/cli/latest/production/cli-linux-amd64

ダウンロードしたファイルを実行し、初期設定を行います
今回はSignup時に生成したAkeylessアカウントの Access IDとAceess KeyをCLIでの認証に用います

$ chmod +x akeyless
$ ./akeyless
AKEYLESS-CLI, first use detected
For more info please visit: https://docs.akeyless.io/docs/cli
Enter Akeyless URL (Default: vault.akeyless.io)
Would you like to configure a profile? (Y/n)
Profile Name:  (Default: default)
Access Type (enter for access_key):
  1) access_key
  2) aws_iam
  3) azure_ad
  4) saml
  5) ldap
  6) email/password
  7) oidc
  8) k8s
  9) gcp
  10) certificate
  11) oci
 1
Access ID:  p-n8dqv9o9risxam
Access Key:  ********************************************
The profile: default was successfully configured
Would you like to move 'akeyless' binary to: /home/ubuntu/.akeyless/bin/akeyless? (Y/n)
Please type your answer:
The cli was successfully moved to path: /home/ubuntu/.akeyless/bin/akeyless
Would you like to add '/home/ubuntu/.akeyless/bin' To user PATH environment variable? (Y/n)
Please type your answer:
Please run the following command to start using Akeyless CLI:
        'source /home/ubuntu/.bashrc'
$ source /home/ubuntu/.bashrc

正常に動作することを確かめるテストを行います
下記のコマンドで、管理されている Secretのリストが表示されます

$ akeyless list-items
{
  "items": [
    {
      "item_name": "/MY_ZK_DFC_KEY",
      "item_id": 292643381,
      "display_id": "l2o3ou3qa6Tm-r3ujw39t59lk",
      "item_type": "AES256GCM",
      "item_sub_type": "generic",
      "item_metadata": "",
      "item_tags": null,
      "item_size": 32,
      ...
      (省略)
      ...
      "creation_date": "2024-07-09T04:02:36Z",
      "modification_date": "2024-07-09T04:02:36Z",
      "access_date_display": "2024-07-09T04Z",
      "gateway_details": null
    }
  ],
  "next_page": "eyJpIjoiL2ZvbzEifQ=="
}
$

GUIと同様に、あらかじめ生成済みの Static Secret である"/MyFirstSecret"を取得します

$ akeyless get-secret-value --name /MyFirstSecret
My First Secret Value

"My First Secret Value"の値を確認することができました

Static Secretの作成

Akeyless Gateway コンソール

Static Secret の作成を行います
Items > New > "Static Secret' を選択します
CSM-5-1.png

Name に、"foo1", Value に"bar1"を入力し、"Finish"をクリックします
CSM-5-2a.png

新しく生成された Static Secret "foo1"が確認できます
CSM-5-3.png

"Value"の項目の"目"のアイコンをクリックすると、Value "bar1"が確認できます
CSM-5-4a.png

暗号化技術: "DFC" と "Zero Knowledge Encryption"

CSM-5-4c.png

"MyFirstSecret"と、今回作成した"foo1"の2つの Secretが確認できます
アイコンを見ると、"foo1"には、緑のマークが付いており、"MyFirstSecret"には付いていません

これは、暗号化技術である"Zero Knowledge Encryption"を利用しているかどうかを指し、利用している場合、緑のマークが付きます

CSM-DFC.png

全てのSecretは、DFCという暗号化技術を用い保存されます。Secretはまず、"Protection Key"(暗号鍵)で暗号化されます

"Protection Key"は、DFCにより、フラグメントに分割され、AWS, GCP, Azureの各クラウドへ保存されます

CipherTrust Manager内に"Akeyless Gateway"が稼働しており、もう一つのフラグメント"Customer Fragment"を、"Akeyless Gateway"に保存することができます
この"Customer Flagment"を利用する技術を"Zero Knowledge Encrption"と呼びます

Secret "MyFirstSecret"の暗号化には、"Default"の”Protection Key"が利用されています
"Default"の”Protection Key"は、"Zero Knowledge Encription"を利用してらず、Customer FragmentはAkeyless Gatewayに保存されていません

一方、新規に Akeyless Gatewayコンソールから作成した Secret "foo1"の暗号化には、"MY_ZK_DFC_KEY"の”Protection Key"が利用されています
"MY_ZK_DFC_KEY"の”Protection Key"は、"Zero Knowledge Encription"を利用しており、Customer FragmentはAkeyless Gatewayに保存されています
このため、Akeyless Gatewayを用いないと、Secretを参照することができません

CLI操作

先ほど、作成した ”Zero Knowledge Encription”利用の"/foo1"をCLIで取得してみます
現状、 直接、Akeyless SaaSへ問い合わせを行っており、Customer Fragment を参照することができず失敗しています

$ akeyless get-secret-value --name /foo1
null
failed to get the value of the requested secrets: failed to obtain secret's encryption key, error: failed to extract derived key, error: customer fragment 6a4684ec-669a-47e7-bfd0-1e0f55e82f5c is required for this operation but not available

CipherTrust Manager内のAkeyless Gatewayを利用するように設定をおこないます

Akeyless CLI の Akeyless Gateway 利用設定

参照ドキュメント

hosts ファイルに CMホスト名の追加

/etc/hostsへ、CMのホスト名を登録します
"web.ciphertrustmanager.local"は、CMのディフォルト証明書で利用されています
今回はこれを利用します

<ciphertrust manager ipaddress> web.ciphertrustmanager.local

ksctl のインストール

CipherTrust Manager のCLIである ksctl のインストールをおこないます

$ curl -OLk https://web.ciphertrustmanager.local/downloads/ksctl_images.zip
$ unzip ksctl_images.zip
$ sudo cp ksctl-linux-amd64 /usr/local/bin/ksctl

フォルダ "$HOME/.ksctl"を作成し、コンフィグレーションファイル "config.yaml"を設定します
今回は "config_example.yaml"に対して、 LSCTL_PASSWORD, KSCTL_URL を変更しました

$ mkdir $HOME/.ksctl
$ cp config_example.yaml $HOME/.ksctl/config.yaml

$ cat $HOME/.ksctl/config.yaml
KSCTL_VERBOSITY: false
KSCTL_RESP: json
KSCTL_USERNAME: admin
KSCTL_PASSWORD: Thales123!
KSCTL_URL: https://web.ciphertrustmanager.local:443
KSCTL_JWT:
KSCTL_NOSSLVERIFY: true
KSCTL_TIMEOUT: 30
$

ksctl が正常にインストールできたか、確認を行います

$ ksctl version
$ ksctl --help
$ ksctl keys list

CipherTrust Manager の Web Interface の証明書ダウンロード

下記コマンドにて、Web Interface の証明書のダウンロードを行います

$ ksctl interfaces certificate get --name web --icertfile web-ciphertrustmanager-local.pem

必要に応じ、証明書(pemファイル)に含まれる証明書を確認します

$ openssl x509 -text -fingerprint -noout -in web-ciphertrustmanager-local.pem

Akeyless CLI 環境変数設定

.bachrcへ下記、環境変数の追加をおこないます

  • AKEYLESS_TRUSTED_TLS_CERTIFICATE_FILE: Akeyless CLIで参照するweb証明書
  • AKEYLESS_GATEWAY_URL: Akeyless GW URLの指定:
export AKEYLESS_TRUSTED_TLS_CERTIFICATE_FILE=~/web-ciphertrustmanager-local.pem
export AKEYLESS_GATEWAY_URL=https://web.ciphertrustmanager.local/akeyless-api/

.bashrc の再読込み

$ source .bashrc

再度、GUIにて作成した "/foo1"を取得します
Akeyless Gatewayを利用し、Customer Fragment を参照することができるようになったため、正常にSecretを取得できるようになりました

$ akeyless get-secret-value --name /foo1
bar1

What's Next?

補足

  • Akyless とCSM機能の違い

    • Akeyless の下記機能についてCSM未サポート
      • Classic keys (CMにてサポート)
      • KMIP (CM- KMIPにてサポート)
      • KMS Cloud Manager (CCKMにてサポート)
      • Transparent Data Encryption (CAKMにてサポート)
      • Tokenization (CT-VL にてサポート)
      • Secure Remote Access
      • Akeyless Password Manager
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1