# HashiCorp Vaultポリシーの設定

HashiCorp Vaultでは、ポリシーはVault内の特定のパスと操作へのアクセスを決定します。ポリシーはデフォルトでアクセスを拒否するように設定されているため、Workatoがシークレットエンジンの設定を読み取る能力、および使用するシークレットへの読み取りアクセスを与えるポリシーを作成する必要があります。

ポリシーはJSONまたはHCL形式で記述されます。典型的なポリシーには、HashiCorp Vaultでアクセスする予定のパスと、各パスに対して定義する機能が含まれます。

パスはKey-Value (KV)エンジンのバージョン (opens new window)およびパスが完全修飾されているかどうかによって異なります。詳細については、Vaultポリシーの権限を参照してください。

このドキュメントでは、WorkatoでHashiCorp Vaultシークレットを使用するためにポリシーに追加する必要のあるパスと機能について説明します。

ポリシーについて詳しく学ぶ (opens new window)には、HashiCorp Vaultのドキュメントを参照してください。


# HashiCorp Vaultポリシーの設定

以下の手順では、制限的なHashiCorp VaultポリシーをKV v1 (opens new window)およびKV v2 (opens new window)の両方に設定する方法を示します。

1

HashiCorp Vaultインスタンスでポリシーに移動します。

2

ACLポリシーの作成をクリックするか、既存のポリシーの編集を行います。

3

以下をポリシーに追加することで、Workatoがシークレットエンジンの設定を読み取ることができるようにします。ユーザーの理解を助けるために、パスの前に短い説明テキストを追加することをお勧めします(#で示されます):

# This allows read access to the secrets engine configuration, which is required to get the engine's version. Different versions have different APIs. 

path "sys/mounts/<secret_engine_name>" {
  capabilities = [ "read" ]
}

例:

# This allows read access to the secrets engine configuration, which is required to get the engine's version. Different versions have different APIs. 

path "sys/mounts/workato_docs" {
  capabilities = [ "read" ]
}

4

以下をポリシーに追加することで、Workatoがシークレットエンジンにアクセスできるようにします。使用しているKVバージョン (opens new window)に応じて、以下をポリシーに追加します:

KV v1

KV v1 (opens new window)の場合、次の構文を使用します:

path "<secret_engine_name>/<secret_name>" {
  capabilities = [ "read" ]
}

例:

# Read Zendesk secrets (KV v1)
path "workato_docs/zendesk" {
  capabilities = [ "read" ]
}
KV v2

KV v2 (opens new window)の場合、エンジン名の後にdata/をパスに含める必要があります:

path "<secret_engine_name>/data/<secret_name>" {
  capabilities = [ "read" ]
}

例:

# Read Zendesk secrets (KV v2)
path "workato_docs/data/zendesk" {
  capabilities = [ "read" ]
}
5

必要に応じて、ポリシーに追加のシークレットエンジンを追加します。


# Vaultポリシーの権限

Workatoがシークレットに対してアクセスするレベルを細かく制御するために、制限的なポリシーを指定するか、許可的なポリシーで広範なアクセスを与えることができます。構文はそれに応じて異なります。以下のセクションで示されています。


# 制限的なポリシー

詳細な制限を設定するために、完全修飾パスを使用してWorkatoが読み取ることができる具体的なシークレットを指定します。

ただし、完全修飾シークレットパスは使用しているKVバージョン (opens new window)によって異なります。KV v2 (opens new window)エンジンを使用するパスでは、エンジン名の後にdata/を含める必要がありますが、KV v1 (opens new window)を使用するパスでは含めません。

例えば、以下のKV v2ポリシーは、workato_docsエンジンのzendeskシークレットに対してWorkatoに読み取り専用アクセスを許可します:

# Read Zendesk secrets (KV v2)
path "workato_docs/data/zendesk" {
  capabilities = [ "read" ]
}

以下のKV v1ポリシーも機能的に同じです:

# Read Zendesk secrets (KV v1)
path "workato_docs/zendesk" {
  capabilities = [ "read" ]
}

# 許可的なポリシー

より許可的なポリシーを作成するために、シークレットパスにグロブ(*)を使用して、Workatoがエンジン内のすべてのシークレットにアクセスできるようにします。例えば、以下のポリシーは、workato_docsエンジン内のすべてのシークレットに対してWorkatoに読み取り専用アクセスを許可します:

# Read Zendesk secrets
path "workato_docs/*" {
  capabilities = [ "read" ]
}

この場合、KV v1とv2で同じ構文を使用できます。なぜなら、ポリシーが完全修飾シークレットパスを使用していないためです。


# サンプルポリシー

以下はサンプルのポリシーです。以下は、複数のシークレットエンジンへの読み取り専用アクセスをWorkatoに許可する完全なHashiCorp Vaultポリシーの例です。

# これにより、エンジンのバージョンを取得するために必要なシークレットエンジンの設定への読み取りアクセスが許可されます。異なるバージョンには異なるAPIがあります。

path "sys/mounts/workato_zendesk" {
  capabilities = [ "read" ]
}
path "sys/mounts/workato_jira" {
  capabilities = [ "read" ]
}
path "sys/mounts/workato_db" {
  capabilities = [ "read" ]
}

# Zendeskシークレットの読み取り(KV v2)
path "workato_zendesk/data/zendesk" {
  capabilities = [ "read" ]
}
# JIRAシークレットの読み取り(KV v1)
path "workato_jira/jira" {
  capabilities = [ "read" ]
}
# DBシークレットの読み取り
path "workato_db/*" {
  capabilities = [ "read" ]
}


Last updated: 2024/2/13 16:59:53