Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

25.5. Vault でのサービスシークレットの保存

本セクションでは、管理者が vault を使用して、サービスシークレットを一元的にセキュアに保存する方法を説明します。サービスシークレットは、サービスのパブリックキーで暗号化されます。その後、サービスはドメインの任意のマシンでプライベートキーを使用してシークレットを取得します。シークレットにアクセスできるのは、サービスと管理者のみです。
本セクションでは、以下の手順について説明します。
本手順での以下の用語について説明します。
  • admin は、サービスパスワードを管理する管理者です。
  • http_password は、管理者が作成したプライベートユーザー vault の名前です。
  • password.txt は、サービスパスワードが含まれるファイルです。
  • password_vault は、サービス向けに作成された vault です。
  • HTTP/server.example.com は、パスワードがアーカイブされるサービスです。
  • service-public.pem は、password_vault に保存されているパスワードの暗号化に使用するサービスの公開鍵です

25.5.1. サービスパスワードを保存するユーザー vault の作成

管理者が所有するユーザー vault を作成し、これを使用してサービスパスワードを保存します。vault タイプは standard です。これは、vault コンテンツへのアクセス時に管理者が認証する必要がありません。
  1. 管理者としてログインします。
    $ kinit admin
  2. 標準ユーザー vault を作成します。
    $ ipa vault-add http_password --type standard
    ---------------------------
    Added vault "http_password"
    ---------------------------
      Vault name: http_password
      Type: standard
      Owner users: admin
      Vault user: admin
  3. サービスパスワードを vault にアーカイブします。
    $ ipa vault-archive http_password --in password.txt
    ----------------------------------------
    Archived data into vault "http_password"
    ----------------------------------------
    警告
    パスワードを vault へアーカイブしたら、システムから password.txt を削除します。

25.5.2. ユーザー vault からサービスインスタンスへのサービスパスワードのプロビジョニング

サービス用に作成された非対称 vault を使用して、サービスインスタンスにサービスパスワードをプロビジョニングします。
  1. 管理者としてログインします。
    $ kinit admin
  2. サービスインスタンスの公開鍵を取得します。たとえば、openssl ユーティリティーを使用する場合は以下を行います。
    1. service-private.pem 秘密 鍵を生成します。
      $ openssl genrsa -out service-private.pem 2048
      Generating RSA private key, 2048 bit long modulus
      .+++
      ...........................................+++
      e is 65537 (0x10001)
    2. 秘密鍵をもとに service-public.pem 公開鍵を生成します。
      $ openssl rsa -in service-private.pem -out service-public.pem -pubout
      writing RSA key
  3. サービスインスタンス vault として非対称 vault を作成し、公開鍵を指定します。
    $ ipa vault-add password_vault --service HTTP/server.example.com --type asymmetric --public-key-file service-public.pem
    ----------------------------
    Added vault "password_vault"
    ----------------------------
    Vault name: password_vault
    Type: asymmetric
    Public key: LS0tLS1C...S0tLS0tCg==
    Owner users: admin
    Vault service: HTTP/server.example.com@EXAMPLE.COM
    vault にアーカイブされたパスワードはこの鍵で保護されます。
  4. 管理者のプライベート vault からサービスパスワードを取得し、新しいサービス vault にアーカイブします。
    $ ipa vault-retrieve http_password --out password.txt
    -----------------------------------------
    Retrieved data from vault "http_password"
    -----------------------------------------
    $ ipa vault-archive password_vault --service HTTP/server.example.com --in password.txt
    -----------------------------------
    Archived data into vault "password_vault"
    -----------------------------------
    これにより、サービスインスタンスの公開鍵でパスワードが暗号化されます。
    警告
    パスワードを vault へアーカイブしたら、システムから password.txt を削除します。
これらのステップを、パスワードを必要とする全サービスインスタンスで繰り返します。サービスインスタンスごとに新規の非対称 vault を作成します。

25.5.3. サービスインスタンスのサービスパスワードの取得

サービスインスタンスは、ローカルに保存されたサービスの秘密鍵を使用してサービス vault パスワードを取得できます。
  1. 管理者としてログインします。
    $ kinit admin
  2. サービスの Kerberos チケットを取得します。
    # kinit HTTP/server.example.com -k -t /etc/httpd/conf/ipa.keytab
  3. サービス vault パスワードを取得します。
    $ ipa vault-retrieve password_vault --service HTTP/server.example.com --private-key-file service-private.pem --out password.txt
    ------------------------------------
    Retrieved data from vault "password_vault"
    ------------------------------------
    

25.5.4. サービス vault パスワードの変更

サービスインスタンスのセキュリティーが侵害されたら、サービス vault のパスワードを変更し、セキュリティー侵害されていないサービスインスタンスにだけ新規パスワードを再度提供することで、これを切り離します。
  1. 管理者ユーザーの vault に新しいパスワードをアーカイブします。
    $ ipa vault-archive http_password --in new_password.txt
    ----------------------------------------
    Archived data into vault "http_password"
    ----------------------------------------
    これにより、vault に保存されている現在のパスワードが上書きされます。
  2. セキュリティーが侵害されたインスタンス以外の各サービスインスタンスに新規パスワードを再提供します。
    1. 管理者の vault から新しいパスワードを取得します。
      $ ipa vault-retrieve http_password --out password.txt
      -----------------------------------------
      Retrieved data from vault "http_password"
      -----------------------------------------
    2. 新規パスワードをサービスインスタンス vault にアーカイブします。
      $ ipa vault-archive password_vault --service HTTP/server.example.com --in password.txt
      -----------------------------------
      Archived data into vault "password_vault"
      -----------------------------------
      警告
      パスワードを vault へアーカイブしたら、システムから password.txt を削除します。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。