首页 > 解决方案 > 容器如何~读取~存储在(安装的)秘密卷中的秘密?

问题描述

本文讨论如何安装秘密卷。

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-volume-secret

使用秘密卷向容器组中的容器提供敏感信息。秘密卷将您的秘密存储在卷内的文件中,容器组中的容器可以访问这些文件。通过将机密存储在机密卷中,您可以避免将 SSH 密钥或数据库凭据等敏感数据添加到应用程序代码中。

但是它没有讨论在创建它(秘密卷)之后如何读出秘密。

下面列出的文章中的相关代码。

    "volumes": [
      {
        "name": "secretvolume1",
        "secret": {
          "mysecret1": "TXkgZmlyc3Qgc2VjcmV0IEZPTwo=",
          "mysecret2": "TXkgc2Vjb25kIHNlY3JldCBCQVIK"
        }
      }

看起来任何容器都可以挂载这个特殊的秘密卷。

          "volumeMounts": [
            {
              "name": "secretvolume1",
              "mountPath": "/mnt/secrets"
            }

(通过卷挂载的秘密卷的)(父)容器如何读出秘密?这些秘密不应该是文件持久化的。

更好的说法是,我的应用程序代码如何检索秘密值?

这家伙差点把我带到那里,但没有。:( 他使用命令行读出了秘密。

https://www.c-sharpcorner.com/article/secret-volumes-with-demo-and-empty-volumes-in-azure-container-instances/

标签: azureazure-container-instances

解决方案


好调用granadaCoder。是的,密钥的密钥,即“mysecret1”、“mysecret2”,成为volumeMount 路径中的文件名,即“/mnt/secrets”。请注意,密钥的值应该是 base64 编码的。它们的解码值成为文件的内容。在您的情况下,您将在容器中找到内容为“我的第一个秘密 FOO”的 /mnt/secrets/mysecret1 和内容为“我的第二个秘密 BAR”的 /mnt/secrets/mysecret2。


推荐阅读