<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Secret 管理 on Dapr 文档库</title><link>https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/</link><description>Recent content in Secret 管理 on Dapr 文档库</description><generator>Hugo</generator><language>zh-hans</language><atom:link href="https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/index.xml" rel="self" type="application/rss+xml"/><item><title>Secrets 管理概述</title><link>https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/secrets-overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/secrets-overview/</guid><description>&lt;p>应用程序通常使用专用的 secret 存储来保存敏感信息。例如，您可以使用存储在 secret 存储中的连接字符串、密钥、令牌和其他应用程序级别的 secret 来对数据库、服务和外部系统进行身份验证，例如 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/components-reference/supported-secret-stores/">AWS Secrets Manager, Azure Key Vault, Hashicorp Vault 等&lt;/a>。&lt;/p>
&lt;p>为了访问这些 secret 存储，应用程序需要导入 secret 存储的 SDK。在多云场景中，这种情况更具挑战性，因为可能会使用不同供应商特定的 secret 存储。&lt;/p>
&lt;h2 id="secrets-管理-api">Secrets 管理 API&lt;/h2>
&lt;p>Dapr 的专用 secrets 构建块 API 使开发人员更容易从 secret 存储中使用应用程序 secret。要使用 Dapr 的 secret 存储构建块，您需要：&lt;/p>
&lt;ol>
&lt;li>为特定的 secret 存储解决方案设置一个组件。&lt;/li>
&lt;li>在应用程序代码中使用 Dapr secrets API 检索 secret。&lt;/li>
&lt;li>可选地，在 Dapr 组件文件中引用 secret。&lt;/li>
&lt;/ol>
&lt;p>&lt;a href="https://www.youtube.com/live/0y7ne6teHT4?si=3bmNSSyIEIVSF-Ej&amp;amp;t=9931">以下概述视频和演示&lt;/a>展示了 Dapr secrets 管理的工作原理。&lt;/p>
&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/0y7ne6teHT4?si=3bmNSSyIEIVSF-Ej&amp;amp;start=9931" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen>&lt;/iframe>
&lt;h2 id="功能">功能&lt;/h2>
&lt;p>Secrets 管理 API 构建块为您的应用程序带来了多种功能。&lt;/p></description></item><item><title>如何检索 Secret</title><link>https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/howto-secrets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/howto-secrets/</guid><description>&lt;p>在了解了&lt;a href="https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/secrets-overview/">Dapr Secret 构建块的功能&lt;/a>后，接下来学习如何在服务中使用它。本指南将演示如何调用 Secret API，并从配置的 Secret 存储中将 Secret 检索到应用程序代码中。&lt;/p>
&lt;img src="https://v1-18.docs.dapr.io/images/howto-secrets/secrets-mgmt-overview.png" width=1000 alt="示例服务的 Secret 管理示意图。">


&lt;div class="alert alert-primary" role="alert">
&lt;h4 class="alert-heading">提示&lt;/h4>

 如果您还没有尝试过，&lt;a href="https://v1-18.docs.dapr.io/zh-hans/getting-started/quickstarts/secrets-quickstart/">请先查看 Secret 管理快速入门&lt;/a>，以快速了解如何使用 Secret API。

&lt;/div>

&lt;h2 id="配置-secret-存储">配置 Secret 存储&lt;/h2>
&lt;p>在应用程序代码中检索 Secret 之前，您需要先配置一个 Secret 存储组件。此示例配置了一个使用本地 JSON 文件存储 Secret 的 Secret 存储。&lt;/p>


&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">警告&lt;/h4>

 在生产环境中，不建议使用本地 Secret 存储。&lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/components-reference/supported-secret-stores/">请查看其他安全管理 Secret 的方案&lt;/a>。

&lt;/div>

&lt;p>在项目目录中，创建一个名为 &lt;code>secrets.json&lt;/code> 的文件，内容如下：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;secret&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;Order Processing pass key&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>创建一个名为 &lt;code>components&lt;/code> 的新目录。进入该目录并创建一个名为 &lt;code>local-secret-store.yaml&lt;/code> 的组件文件，内容如下：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Component&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">localsecretstore&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">secretstores.local.file&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">version&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">v1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">secretsFile&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">secrets.json &lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#8f5902;font-style:italic"># Secret 文件的路径&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">nestedSeparator&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">value&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;:&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">注意&lt;/h4>

 Secret 存储 JSON 的路径是相对于您执行 &lt;code>dapr run&lt;/code> 命令的位置。

&lt;/div>

&lt;p>更多信息：&lt;/p></description></item><item><title>如何使用：配置 secret 访问范围</title><link>https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/secrets-scopes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/secrets-scopes/</guid><description>&lt;p>当您&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/components/setup-secret-store/">为应用程序配置了 secret 存储&lt;/a>后，Dapr 应用程序默认可以访问该存储中定义的&lt;em>所有&lt;/em> secret。&lt;/p>
&lt;p>您可以通过在&lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/configuration-concept/">应用程序配置&lt;/a>中定义 secret 访问范围策略，来限制 Dapr 应用程序对特定 secret 的访问权限。&lt;/p>
&lt;p>secret 访问范围策略适用于任何&lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/components-reference/supported-secret-stores/">secret 存储&lt;/a>，包括：&lt;/p>
&lt;ul>
&lt;li>本地 secret 存储&lt;/li>
&lt;li>Kubernetes secret 存储&lt;/li>
&lt;li>公有云 secret 存储&lt;/li>
&lt;/ul>
&lt;p>有关如何设置&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/components/setup-secret-store/">secret 存储&lt;/a>的详细信息，请阅读&lt;a href="https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/secrets/howto-secrets/">如何：检索 secret&lt;/a>。&lt;/p>
&lt;p>观看&lt;a href="https://youtu.be/j99RN_nxExA?start=2272">此视频&lt;/a>以了解如何在应用程序中使用 secret 访问范围的演示。&lt;/p>
&lt;div class="embed-responsive embed-responsive-16by9">
&lt;iframe width="688" height="430" src="https://www.youtube-nocookie.com/embed/j99RN_nxExA?start=2272" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>&lt;/iframe>
&lt;/div>
&lt;h2 id="场景-1拒绝访问-secret-存储中的所有-secret">场景 1：拒绝访问 secret 存储中的所有 secret&lt;/h2>
&lt;p>在此示例中，所有 secret 访问都被拒绝给运行在 Kubernetes 集群上的应用程序，该集群配置了名为 &lt;code>mycustomsecretstore&lt;/code> 的&lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/components-reference/supported-secret-stores/kubernetes-secret-store/">Kubernetes secret 存储&lt;/a>。除了用户定义的自定义存储外，示例还配置了 Kubernetes 默认存储（名为 &lt;code>kubernetes&lt;/code>），以确保所有 secret 都被拒绝访问。&lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/components-reference/supported-secret-stores/kubernetes-secret-store/#default-kubernetes-secret-store-component">了解有关 Kubernetes 默认 secret 存储的更多信息&lt;/a>。&lt;/p>
&lt;p>定义以下 &lt;code>appconfig.yaml&lt;/code> 配置，并使用命令 &lt;code>kubectl apply -f appconfig.yaml&lt;/code> 将其应用于 Kubernetes 集群。&lt;/p></description></item></channel></rss>