HashiCorp Vaultポリシー
HashiCorp Vaultでは、ポリシーによってVault内の特定のパスおよび操作へのアクセスが決まります。 ポリシーはデフォルトでアクセスを拒否するように設定されているため、シークレットエンジン設定を読み取る機能と、使用予定のシークレットへの読み取りアクセス権をWorkatoに付与するポリシーを作成する必要があります。
ポリシーはJSONまたはHCL形式です。 一般的なポリシーには、HashiCorp Vaultでアクセスする予定のパスと、各パスに対して定義する機能が含まれます。
パスはKey-Value(KV)エンジンバージョンおよびパスが完全修飾されているかどうかによって異なることに注意してください。 詳細はVaultポリシー権限を参照してください。
このドキュメントでは、WorkatoでHashiCorp Vaultシークレットを使用するためにポリシーに追加する必要があるパスと機能について説明します。
HashiCorp Vaultのドキュメントでポリシーの詳細を参照してください。
HashiCorp Vaultポリシーの設定
次の手順では、KV v1とKV v2の両方について、制限的なHashiCorp Vaultポリシーを設定する方法を示します。
HashiCorp Vaultインスタンスで、Policiesに移動します。
Create ACL policyをクリックするか、既存のポリシーの1つを編集します。
次の内容をポリシーに追加して、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" ]
}使用しているKVバージョンに応じて、次の内容をポリシーに追加し、Workatoがシークレットエンジンにアクセスできるようにします:
KV v1
KV v1の場合は、次の構文を使用します:
path "<secret_engine_name>/<secret_name>" {
capabilities = [ "read" ]
}例:
# Read Zendesk secrets (KV v1)
path "workato_docs/zendesk" {
capabilities = [ "read" ]
}KV v2
KV v2の場合は、エンジン名の後のパスにdata/を含める必要があります:
path "<secret_engine_name>/data/<secret_name>" {
capabilities = [ "read" ]
}例:
# Read Zendesk secrets (KV v2)
path "workato_docs/data/zendesk" {
capabilities = [ "read" ]
}必要に応じて、追加のシークレットエンジンをポリシーに追加します。
Vaultポリシー権限
制限的なポリシーを指定してWorkatoのシークレットへのアクセスレベルを細かく調整することも、許容的なポリシーで広範なアクセス権を付与することもできます。 次のセクションに示すように、それに応じて構文は異なります。
制限的なポリシー
詳細で制限的なポリシーでは、完全修飾パスを使用して、Workatoが読み取れる正確なシークレットを指定します。
完全修飾されたシークレットパスは、使用しているKVバージョンによって異なることに注意してください。 KV v2エンジンを使用するパスではエンジン名の後にdata/を含める必要がありますが、KV v1を使用するパスでは含めないでください。
たとえば、次の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" ]
}許容的なポリシー
より許容的なポリシーを作成するには、シークレットパスでglob(*)を使用して、エンジン内のすべてのシークレットへのアクセス権をWorkatoに付与します。 たとえば、次のポリシーは、workato_docsエンジン内のすべてのシークレットに対する読み取り専用アクセス権をWorkatoに付与します:
# Read Zendesk secrets
path "workato_docs/*" {
capabilities = [ "read" ]
}この場合、ポリシーは完全修飾されたシークレットパスを使用しないため、KV v1とv2で同じ構文を使用できます。
ポリシー例
以下は、複数のシークレットエンジンに対する読み取り専用アクセス権をWorkatoに付与する完全なHashiCorp Vaultポリシーの例です:
# 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_zendesk" {
capabilities = [ "read" ]
}
path "sys/mounts/workato_jira" {
capabilities = [ "read" ]
}
path "sys/mounts/workato_db" {
capabilities = [ "read" ]
}
# Read Zendesk secrets (KV v2)
path "workato_zendesk/data/zendesk" {
capabilities = [ "read" ]
}
# Read JIRA secrets (KV v1)
path "workato_jira/jira" {
capabilities = [ "read" ]
}
# Read DB secrets
path "workato_db/*" {
capabilities = [ "read" ]
}Last updated: