|
@@ -68,7 +68,7 @@
|
|
|
<div data-md-component="skip">
|
|
<div data-md-component="skip">
|
|
|
|
|
|
|
|
|
|
|
|
|
- <a href="#akeyless-vault" class="md-skip">
|
|
|
|
|
|
|
+ <a href="#akeyless-secrets-management-platform" class="md-skip">
|
|
|
Skip to content
|
|
Skip to content
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
@@ -1317,39 +1317,72 @@
|
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#akeyless-vault" class="md-nav__link">
|
|
|
|
|
- Akeyless Vault
|
|
|
|
|
|
|
+ <a href="#akeyless-secrets-management-platform" class="md-nav__link">
|
|
|
|
|
+ Akeyless Secrets Management Platform
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
- <nav class="md-nav" aria-label="Akeyless Vault">
|
|
|
|
|
|
|
+ <nav class="md-nav" aria-label="Akeyless Secrets Management Platform">
|
|
|
<ul class="md-nav__list">
|
|
<ul class="md-nav__list">
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#authentication" class="md-nav__link">
|
|
|
|
|
- Authentication
|
|
|
|
|
|
|
+ <a href="#create-secret-store" class="md-nav__link">
|
|
|
|
|
+ Create Secret Store:
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
</li>
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#creating-an-akeyless-ccredentials-secret" class="md-nav__link">
|
|
|
|
|
- Creating an Akeyless Ccredentials Secret
|
|
|
|
|
|
|
+ <a href="#authentication-with-kubernetes" class="md-nav__link">
|
|
|
|
|
+ Authentication with Kubernetes:
|
|
|
|
|
+ </a>
|
|
|
|
|
+
|
|
|
|
|
+ <nav class="md-nav" aria-label="Authentication with Kubernetes:">
|
|
|
|
|
+ <ul class="md-nav__list">
|
|
|
|
|
+
|
|
|
|
|
+ <li class="md-nav__item">
|
|
|
|
|
+ <a href="#create-the-akeyless-secret-store-provider-with-kubernetes-auth-method" class="md-nav__link">
|
|
|
|
|
+ Create the Akeyless Secret Store Provider with Kubernetes Auth-Method
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </nav>
|
|
|
|
|
+
|
|
|
|
|
+</li>
|
|
|
|
|
+
|
|
|
|
|
+ <li class="md-nav__item">
|
|
|
|
|
+ <a href="#authentication-with-cloud-identity-or-api-access-key" class="md-nav__link">
|
|
|
|
|
+ Authentication With Cloud-Identity or Api-Access-Key
|
|
|
|
|
+ </a>
|
|
|
|
|
+
|
|
|
|
|
+ <nav class="md-nav" aria-label="Authentication With Cloud-Identity or Api-Access-Key">
|
|
|
|
|
+ <ul class="md-nav__list">
|
|
|
|
|
+
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#update-secret-store" class="md-nav__link">
|
|
|
|
|
- Update Secret Store
|
|
|
|
|
|
|
+ <a href="#creating-an-akeyless-credentials-secret" class="md-nav__link">
|
|
|
|
|
+ Creating an Akeyless Credentials Secret
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
</li>
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#authentication-with-kubernetes" class="md-nav__link">
|
|
|
|
|
- Authentication with Kubernetes
|
|
|
|
|
|
|
+ <a href="#create-the-akeyless-secret-store-provider-with-the-credentials-secret" class="md-nav__link">
|
|
|
|
|
+ Create the Akeyless Secret Store Provider with the Credentials Secret
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
+</li>
|
|
|
|
|
+
|
|
|
|
|
+ <li class="md-nav__item">
|
|
|
|
|
+ <a href="#create-the-akeyless-secret-store-with-cas-for-tls-handshake" class="md-nav__link">
|
|
|
|
|
+ Create the Akeyless Secret Store With CAs for TLS handshake
|
|
|
|
|
+ </a>
|
|
|
|
|
+
|
|
|
|
|
+</li>
|
|
|
|
|
+
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </nav>
|
|
|
|
|
+
|
|
|
</li>
|
|
</li>
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
@@ -1914,39 +1947,72 @@
|
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#akeyless-vault" class="md-nav__link">
|
|
|
|
|
- Akeyless Vault
|
|
|
|
|
|
|
+ <a href="#akeyless-secrets-management-platform" class="md-nav__link">
|
|
|
|
|
+ Akeyless Secrets Management Platform
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
- <nav class="md-nav" aria-label="Akeyless Vault">
|
|
|
|
|
|
|
+ <nav class="md-nav" aria-label="Akeyless Secrets Management Platform">
|
|
|
<ul class="md-nav__list">
|
|
<ul class="md-nav__list">
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#authentication" class="md-nav__link">
|
|
|
|
|
- Authentication
|
|
|
|
|
|
|
+ <a href="#create-secret-store" class="md-nav__link">
|
|
|
|
|
+ Create Secret Store:
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
</li>
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#creating-an-akeyless-ccredentials-secret" class="md-nav__link">
|
|
|
|
|
- Creating an Akeyless Ccredentials Secret
|
|
|
|
|
|
|
+ <a href="#authentication-with-kubernetes" class="md-nav__link">
|
|
|
|
|
+ Authentication with Kubernetes:
|
|
|
|
|
+ </a>
|
|
|
|
|
+
|
|
|
|
|
+ <nav class="md-nav" aria-label="Authentication with Kubernetes:">
|
|
|
|
|
+ <ul class="md-nav__list">
|
|
|
|
|
+
|
|
|
|
|
+ <li class="md-nav__item">
|
|
|
|
|
+ <a href="#create-the-akeyless-secret-store-provider-with-kubernetes-auth-method" class="md-nav__link">
|
|
|
|
|
+ Create the Akeyless Secret Store Provider with Kubernetes Auth-Method
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </nav>
|
|
|
|
|
+
|
|
|
|
|
+</li>
|
|
|
|
|
+
|
|
|
|
|
+ <li class="md-nav__item">
|
|
|
|
|
+ <a href="#authentication-with-cloud-identity-or-api-access-key" class="md-nav__link">
|
|
|
|
|
+ Authentication With Cloud-Identity or Api-Access-Key
|
|
|
|
|
+ </a>
|
|
|
|
|
+
|
|
|
|
|
+ <nav class="md-nav" aria-label="Authentication With Cloud-Identity or Api-Access-Key">
|
|
|
|
|
+ <ul class="md-nav__list">
|
|
|
|
|
+
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#update-secret-store" class="md-nav__link">
|
|
|
|
|
- Update Secret Store
|
|
|
|
|
|
|
+ <a href="#creating-an-akeyless-credentials-secret" class="md-nav__link">
|
|
|
|
|
+ Creating an Akeyless Credentials Secret
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
</li>
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
|
- <a href="#authentication-with-kubernetes" class="md-nav__link">
|
|
|
|
|
- Authentication with Kubernetes
|
|
|
|
|
|
|
+ <a href="#create-the-akeyless-secret-store-provider-with-the-credentials-secret" class="md-nav__link">
|
|
|
|
|
+ Create the Akeyless Secret Store Provider with the Credentials Secret
|
|
|
</a>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
+</li>
|
|
|
|
|
+
|
|
|
|
|
+ <li class="md-nav__item">
|
|
|
|
|
+ <a href="#create-the-akeyless-secret-store-with-cas-for-tls-handshake" class="md-nav__link">
|
|
|
|
|
+ Create the Akeyless Secret Store With CAs for TLS handshake
|
|
|
|
|
+ </a>
|
|
|
|
|
+
|
|
|
|
|
+</li>
|
|
|
|
|
+
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </nav>
|
|
|
|
|
+
|
|
|
</li>
|
|
</li>
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<li class="md-nav__item">
|
|
@@ -2000,10 +2066,50 @@
|
|
|
|
|
|
|
|
<h1>Akeyless</h1>
|
|
<h1>Akeyless</h1>
|
|
|
|
|
|
|
|
-<h2 id="akeyless-vault">Akeyless Vault</h2>
|
|
|
|
|
-<p>External Secrets Operator integrates with the <a href="https://docs.akeyless.io/reference#v2">Akeyless API</a>.</p>
|
|
|
|
|
-<h3 id="authentication">Authentication</h3>
|
|
|
|
|
-<p>To operate the API first define an access-id, access-type and access-Type-param.</p>
|
|
|
|
|
|
|
+<h2 id="akeyless-secrets-management-platform">Akeyless Secrets Management Platform</h2>
|
|
|
|
|
+<p>External Secrets Operator integrates with the <a href="https://www.akeyless.io/">Akeyless Secrets Management Platform</a>.</p>
|
|
|
|
|
+<h3 id="create-secret-store">Create Secret Store:</h3>
|
|
|
|
|
+<p>SecretStore resource specifies how to access Akeyless. This resource is namespaced.</p>
|
|
|
|
|
+<p><strong>NOTE:</strong> Make sure the Akeyless provider is listed in the Kind=SecretStore.
|
|
|
|
|
+If you use a customer fragment, define the value of akeylessGWApiURL as the URL of your Akeyless Gateway in the following format: https://your.akeyless.gw:8080/v2.</p>
|
|
|
|
|
+<p>Akeyelss provide several Authentication Methods:</p>
|
|
|
|
|
+<h3 id="authentication-with-kubernetes">Authentication with Kubernetes:</h3>
|
|
|
|
|
+<p>Options for obtaining Kubernetes credentials include:</p>
|
|
|
|
|
+<ol>
|
|
|
|
|
+<li>Using a service account jwt referenced in serviceAccountRef</li>
|
|
|
|
|
+<li>Using the jwt from a Kind=Secret referenced by the secretRef</li>
|
|
|
|
|
+<li>Using transient credentials from the mounted service account token within the external-secrets operator</li>
|
|
|
|
|
+</ol>
|
|
|
|
|
+<h4 id="create-the-akeyless-secret-store-provider-with-kubernetes-auth-method">Create the Akeyless Secret Store Provider with Kubernetes Auth-Method</h4>
|
|
|
|
|
+<p><div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">external-secrets.io/v1beta1</span><span class="w"></span>
|
|
|
|
|
+<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">SecretStore</span><span class="w"></span>
|
|
|
|
|
+<span class="nt">metadata</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">akeyless-secret-store</span><span class="w"></span>
|
|
|
|
|
+<span class="nt">spec</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">provider</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">akeyless</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="c1"># URL of your akeyless API</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">akeylessGWApiURL</span><span class="p">:</span><span class="w"> </span><span class="s">"https://api.akeyless.io"</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">authSecretRef</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">kubernetesAuth</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">accessID</span><span class="p">:</span><span class="w"> </span><span class="s">"p-XXXXXX"</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">k8sConfName</span><span class="p">:</span><span class="w"> </span><span class="s">"my-conf-name"</span><span class="w"></span>
|
|
|
|
|
+
|
|
|
|
|
+<span class="w"> </span><span class="c1"># Optional service account field containing the name</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="c1"># of a kubernetes ServiceAccount</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">serviceAccountRef</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"my-sa"</span><span class="w"></span>
|
|
|
|
|
+
|
|
|
|
|
+<span class="w"> </span><span class="c1"># Optional secret field containing a Kubernetes ServiceAccount JWT</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="c1"># used for authenticating with Akeyless</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">secretRef</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"my-secret"</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">key</span><span class="p">:</span><span class="w"> </span><span class="s">"token"</span><span class="w"></span>
|
|
|
|
|
+</code></pre></div>
|
|
|
|
|
+<strong>NOTE:</strong> In case of a <code>ClusterSecretStore</code>, Be sure to provide <code>namespace</code> for <code>serviceAccountRef</code> and <code>secretRef</code> according to the namespaces where the secrets reside.</p>
|
|
|
|
|
+<h3 id="authentication-with-cloud-identity-or-api-access-key">Authentication With Cloud-Identity or Api-Access-Key</h3>
|
|
|
|
|
+<p>Akeyless providers require an access-id, access-type and access-Type-param
|
|
|
|
|
+To set your SecretStore with an authentication method from Akeyless.</p>
|
|
|
<p>The supported auth-methods and their parameters are:</p>
|
|
<p>The supported auth-methods and their parameters are:</p>
|
|
|
<table>
|
|
<table>
|
|
|
<thead>
|
|
<thead>
|
|
@@ -2014,14 +2120,6 @@
|
|
|
</thead>
|
|
</thead>
|
|
|
<tbody>
|
|
<tbody>
|
|
|
<tr>
|
|
<tr>
|
|
|
-<td><code>api_key</code></td>
|
|
|
|
|
-<td>The access key.</td>
|
|
|
|
|
-</tr>
|
|
|
|
|
-<tr>
|
|
|
|
|
-<td><code>k8s</code></td>
|
|
|
|
|
-<td>The k8s configuration name</td>
|
|
|
|
|
-</tr>
|
|
|
|
|
-<tr>
|
|
|
|
|
<td><code>aws_iam</code></td>
|
|
<td><code>aws_iam</code></td>
|
|
|
<td>-</td>
|
|
<td>-</td>
|
|
|
</tr>
|
|
</tr>
|
|
@@ -2033,10 +2131,21 @@
|
|
|
<td><code>azure_ad</code></td>
|
|
<td><code>azure_ad</code></td>
|
|
|
<td>azure object id (optional)</td>
|
|
<td>azure object id (optional)</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>api_key</code></td>
|
|
|
|
|
+<td>The access key.</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>k8s</code></td>
|
|
|
|
|
+<td>The k8s configuration name</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td>For more information see <a href="https://docs.akeyless.io/docs/access-and-authentication-methods">Akeyless Authentication Methods</a></td>
|
|
|
|
|
+<td></td>
|
|
|
|
|
+</tr>
|
|
|
</tbody>
|
|
</tbody>
|
|
|
</table>
|
|
</table>
|
|
|
-<p>For more information see <a href="https://docs.akeyless.io/docs/access-and-authentication-methods">Akeyless Authentication Methods</a></p>
|
|
|
|
|
-<h3 id="creating-an-akeyless-ccredentials-secret">Creating an Akeyless Ccredentials Secret</h3>
|
|
|
|
|
|
|
+<h4 id="creating-an-akeyless-credentials-secret">Creating an Akeyless Credentials Secret</h4>
|
|
|
<p>Create a secret containing your credentials using the following example as a guide:</p>
|
|
<p>Create a secret containing your credentials using the following example as a guide:</p>
|
|
|
<div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v1</span><span class="w"></span>
|
|
<div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v1</span><span class="w"></span>
|
|
|
<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Secret</span><span class="w"></span>
|
|
<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Secret</span><span class="w"></span>
|
|
@@ -2045,11 +2154,10 @@
|
|
|
<span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Opaque</span><span class="w"></span>
|
|
<span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Opaque</span><span class="w"></span>
|
|
|
<span class="nt">stringData</span><span class="p">:</span><span class="w"></span>
|
|
<span class="nt">stringData</span><span class="p">:</span><span class="w"></span>
|
|
|
<span class="w"> </span><span class="nt">accessId</span><span class="p">:</span><span class="w"> </span><span class="s">"p-XXXX"</span><span class="w"></span>
|
|
<span class="w"> </span><span class="nt">accessId</span><span class="p">:</span><span class="w"> </span><span class="s">"p-XXXX"</span><span class="w"></span>
|
|
|
-<span class="w"> </span><span class="nt">accessType</span><span class="p">:</span><span class="w"> </span><span class="c1"># k8s/aws_iam/gcp/azure_ad/api_key</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">accessTypeParam</span><span class="p">:</span><span class="w"> </span><span class="c1"># can be one of the following: k8s-conf-name/gcp-audience/azure-obj-id/access-key</span><span class="w"></span>
|
|
|
|
|
|
|
+<span class="w"> </span><span class="nt">accessType</span><span class="p">:</span><span class="w"> </span><span class="c1"># gcp/azure_ad/api_key/k8s/aws_iam</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">accessTypeParam</span><span class="p">:</span><span class="w"> </span><span class="c1"># optional: can be one of the following: gcp-audience/azure-obj-id/access-key/k8s-conf-name</span><span class="w"></span>
|
|
|
</code></pre></div>
|
|
</code></pre></div>
|
|
|
-<h3 id="update-secret-store">Update Secret Store</h3>
|
|
|
|
|
-<p>Be sure the <code>akeyless</code> provider is listed in the <code>Kind=SecretStore</code> and the <code>akeylessGWApiURL</code> is set (def: "https://api.akeless.io").</p>
|
|
|
|
|
|
|
+<h4 id="create-the-akeyless-secret-store-provider-with-the-credentials-secret">Create the Akeyless Secret Store Provider with the Credentials Secret</h4>
|
|
|
<p><div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">external-secrets.io/v1beta1</span><span class="w"></span>
|
|
<p><div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">external-secrets.io/v1beta1</span><span class="w"></span>
|
|
|
<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">SecretStore</span><span class="w"></span>
|
|
<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">SecretStore</span><span class="w"></span>
|
|
|
<span class="nt">metadata</span><span class="p">:</span><span class="w"></span>
|
|
<span class="nt">metadata</span><span class="p">:</span><span class="w"></span>
|
|
@@ -2072,39 +2180,26 @@
|
|
|
<span class="w"> </span><span class="nt">key</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">accessTypeParam</span><span class="w"></span>
|
|
<span class="w"> </span><span class="nt">key</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">accessTypeParam</span><span class="w"></span>
|
|
|
</code></pre></div>
|
|
</code></pre></div>
|
|
|
<strong>NOTE:</strong> In case of a <code>ClusterSecretStore</code>, be sure to provide <code>namespace</code> for <code>accessID</code>, <code>accessType</code> and <code>accessTypeParam</code> according to the namespaces where the secrets reside.</p>
|
|
<strong>NOTE:</strong> In case of a <code>ClusterSecretStore</code>, be sure to provide <code>namespace</code> for <code>accessID</code>, <code>accessType</code> and <code>accessTypeParam</code> according to the namespaces where the secrets reside.</p>
|
|
|
-<h3 id="authentication-with-kubernetes">Authentication with Kubernetes</h3>
|
|
|
|
|
-<p>Options for obtaining Kubernetes credentials include:</p>
|
|
|
|
|
-<ol>
|
|
|
|
|
-<li>Using a service account jwt referenced in serviceAccountRef</li>
|
|
|
|
|
-<li>Using the jwt from a Kind=Secret referenced by the secretRef</li>
|
|
|
|
|
-<li>Using transient credentials from the mounted service account token within the external-secrets operator</li>
|
|
|
|
|
-</ol>
|
|
|
|
|
-<p><div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">external-secrets.io/v1beta1</span><span class="w"></span>
|
|
|
|
|
-<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">SecretStore</span><span class="w"></span>
|
|
|
|
|
-<span class="nt">metadata</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">akeyless-secret-store</span><span class="w"></span>
|
|
|
|
|
-<span class="nt">spec</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
|
|
+<h4 id="create-the-akeyless-secret-store-with-cas-for-tls-handshake">Create the Akeyless Secret Store With CAs for TLS handshake</h4>
|
|
|
|
|
+<div class="highlight"><pre><span></span><code><span class="l l-Scalar l-Scalar-Plain">....</span><span class="w"></span>
|
|
|
|
|
+<span class="l l-Scalar l-Scalar-Plain">spec</span><span class="p p-Indicator">:</span><span class="w"></span>
|
|
|
<span class="w"> </span><span class="nt">provider</span><span class="p">:</span><span class="w"></span>
|
|
<span class="w"> </span><span class="nt">provider</span><span class="p">:</span><span class="w"></span>
|
|
|
<span class="w"> </span><span class="nt">akeyless</span><span class="p">:</span><span class="w"></span>
|
|
<span class="w"> </span><span class="nt">akeyless</span><span class="p">:</span><span class="w"></span>
|
|
|
-<span class="w"> </span><span class="c1"># URL of your akeyless API</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">akeylessGWApiURL</span><span class="p">:</span><span class="w"> </span><span class="s">"https://api.akeyless.io"</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">authSecretRef</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">kubernetesAuth</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">accessID</span><span class="p">:</span><span class="w"> </span><span class="s">"p-XXXXXX"</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">k8sConfName</span><span class="p">:</span><span class="w"> </span><span class="s">"my-conf-name"</span><span class="w"></span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="w"> </span><span class="c1"># Optional service account field containing the name</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="c1"># of a kubernetes ServiceAccount</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">serviceAccountRef</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"my-sa"</span><span class="w"></span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="w"> </span><span class="c1"># Optional secret field containing a Kubernetes ServiceAccount JWT</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="c1"># used for authenticating with Akeyless</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">secretRef</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"my-secret"</span><span class="w"></span>
|
|
|
|
|
-<span class="w"> </span><span class="nt">key</span><span class="p">:</span><span class="w"> </span><span class="s">"token"</span><span class="w"></span>
|
|
|
|
|
|
|
+<span class="w"> </span><span class="nt">akeylessGWApiURL</span><span class="p">:</span><span class="w"> </span><span class="s">"https://your.akeyless.gw:8080/v2"</span><span class="w"></span>
|
|
|
|
|
+
|
|
|
|
|
+<span class="w"> </span><span class="c1"># Optional caBundle - PEM/base64 encoded CA certificate</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">caBundle</span><span class="p">:</span><span class="w"> </span><span class="s">"<base64</span><span class="nv"> </span><span class="s">encoded</span><span class="nv"> </span><span class="s">cabundle>"</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="c1"># Optional caProvider:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="c1"># Instead of caBundle you can also specify a caProvider</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="c1"># this will retrieve the cert from a Secret or ConfigMap</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">caProvider</span><span class="p">:</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="s">"Secret/ConfigMap"</span><span class="w"> </span><span class="c1"># Can be Secret or ConfigMap</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"<name</span><span class="nv"> </span><span class="s">of</span><span class="nv"> </span><span class="s">secret</span><span class="nv"> </span><span class="s">or</span><span class="nv"> </span><span class="s">configmap>"</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">key</span><span class="p">:</span><span class="w"> </span><span class="s">"<key</span><span class="nv"> </span><span class="s">inside</span><span class="nv"> </span><span class="s">secret>"</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="c1"># namespace is mandatory for ClusterSecretStore and not relevant for SecretStore</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="nt">namespace</span><span class="p">:</span><span class="w"> </span><span class="s">"my-cert-secret-namespace"</span><span class="w"></span>
|
|
|
|
|
+<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">....</span><span class="w"></span>
|
|
|
</code></pre></div>
|
|
</code></pre></div>
|
|
|
-<strong>NOTE:</strong> In case of a <code>ClusterSecretStore</code>, Be sure to provide <code>namespace</code> for <code>serviceAccountRef</code> and <code>secretRef</code> according to the namespaces where the secrets reside.</p>
|
|
|
|
|
<h3 id="creating-an-external-secret">Creating an external secret</h3>
|
|
<h3 id="creating-an-external-secret">Creating an external secret</h3>
|
|
|
<p>To get a secret from Akeyless and create it as a secret on the Kubernetes cluster, a <code>Kind=ExternalSecret</code> is needed.</p>
|
|
<p>To get a secret from Akeyless and create it as a secret on the Kubernetes cluster, a <code>Kind=ExternalSecret</code> is needed.</p>
|
|
|
<div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">external-secrets.io/v1beta1</span><span class="w"></span>
|
|
<div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">external-secrets.io/v1beta1</span><span class="w"></span>
|
|
@@ -2144,7 +2239,7 @@
|
|
|
<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">akeyless-secret-store</span><span class="w"> </span><span class="c1"># Must match SecretStore on the cluster</span><span class="w"></span>
|
|
<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">akeyless-secret-store</span><span class="w"> </span><span class="c1"># Must match SecretStore on the cluster</span><span class="w"></span>
|
|
|
|
|
|
|
|
<span class="w"> </span><span class="nt">target</span><span class="p">:</span><span class="w"></span>
|
|
<span class="w"> </span><span class="nt">target</span><span class="p">:</span><span class="w"></span>
|
|
|
-<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">database-credentials</span><span class="w"> </span><span class="c1"># Name for the secret to be created on the cluster</span><span class="w"></span>
|
|
|
|
|
|
|
+<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">database-credentials-json</span><span class="w"> </span><span class="c1"># Name for the secret to be created on the cluster</span><span class="w"></span>
|
|
|
<span class="w"> </span><span class="nt">creationPolicy</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Owner</span><span class="w"></span>
|
|
<span class="w"> </span><span class="nt">creationPolicy</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Owner</span><span class="w"></span>
|
|
|
|
|
|
|
|
<span class="w"> </span><span class="c1"># for json formatted secrets: each key in the json will be used as the secret key in the SECRET k8s target object</span><span class="w"></span>
|
|
<span class="w"> </span><span class="c1"># for json formatted secrets: each key in the json will be used as the secret key in the SECRET k8s target object</span><span class="w"></span>
|
|
@@ -2154,9 +2249,9 @@
|
|
|
</code></pre></div>
|
|
</code></pre></div>
|
|
|
<h3 id="getting-the-kubernetes-secret">Getting the Kubernetes Secret</h3>
|
|
<h3 id="getting-the-kubernetes-secret">Getting the Kubernetes Secret</h3>
|
|
|
<p>The operator will fetch the secret and inject it as a <code>Kind=Secret</code>.
|
|
<p>The operator will fetch the secret and inject it as a <code>Kind=Secret</code>.
|
|
|
-<div class="highlight"><pre><span></span><code>kubectl get secret akeyless-secret-to-create -o jsonpath='{.data.secretKey}' | base64 -d
|
|
|
|
|
|
|
+<div class="highlight"><pre><span></span><code>kubectl get secret database-credentials -o jsonpath='{.data.db-password}' | base64 -d
|
|
|
</code></pre></div></p>
|
|
</code></pre></div></p>
|
|
|
-<div class="highlight"><pre><span></span><code>kubectl get secret akeyless-secret-to-create-json -o jsonpath='{.data}'
|
|
|
|
|
|
|
+<div class="highlight"><pre><span></span><code>kubectl get secret database-credentials-json -o jsonpath='{.data}'
|
|
|
</code></pre></div>
|
|
</code></pre></div>
|
|
|
|
|
|
|
|
|
|
|