小编Pru*_*une的帖子

(远程)状态文件中的Terraform和cleartext密码

Terraform回购中有很多关于这个问题的Git问题,有很多有趣的评论,但截至目前我还没有找到解决这个问题的方法.

Terraform在tfstate文件中存储纯文本值,包括密码.

大多数用户需要远程存储它们,以便团队可以在同一个基础架构上同时工作,其中大多数用户在S3中存储状态文件.

那你怎么隐藏你的密码?

这里有没有人使用Terraform进行生产?你用明文保存密码吗?您是否有特殊的工作流程来删除或隐藏它们?你跑的时候会发生什么terraform apply

我考虑过以下选项:

  • 将它们存放在领事中 - 我不使用领事
  • 将它们从状态文件中删除 - 这需要每次执行另一个进程,我不知道Terraform将如何使用空/不可读/不可用的密码处理资源
  • 存储随后更改的默认密码(因此Terraform将在tfstate文件中具有无效密码) - 与上面相同
  • 使用Vault资源 - 听起来它还不是一个完整的工作流程
  • 使用git-repo-crypt将它们存储在Git中 - Git也不是一个选项
  • 全局加密S3存储桶 - 这不会阻止人们看到纯文本密码,如果他们可以访问AWS作为"经理"级别,但它似乎是迄今为止的最佳选择

从我的角度来看,这是我想看到的:

  • 状态文件不包含密码
  • 状态文件已加密
  • 状态文件中的密码是指向其他资源的"指针",例如"vault:backend-type:/ path/to/password"
  • 每个Terraform运行都会从指定的提供程序收集所需的密码

这只是一个愿望.

但回到这个问题 - 你如何在生产中使用Terraform?

terraform hashicorp-vault

9
推荐指数
2
解决办法
2578
查看次数

单击后重新启用按钮@click.once

我正在使用 VueJs 2 + vuetify 构建一个应用程序。我有一个带有按钮的弹出菜单,我希望每次出现弹出窗口时只能点击一次...

我尝试使用@click.once按钮上的 ,这对于第一次单击非常有用,但是我找不到重置按钮的方法,因此在第二次显示菜单时可以再次单击它。

<v-dialog
        v-model="dialogDeploy"
        width="500"
        persistent
        lazy
      >

...
            <v-btn
              color="success"
              flat
              :loading="loading"
              @click.once="deploySnapshot"
            >
              Deploy
            </v-btn>
Run Code Online (Sandbox Code Playgroud)

dialogDeploy 等于false,并切换到true以显示菜单,并在按下按钮时返回 false。

这样做的正确方法是什么?有没有办法重置once属性?

我知道另一个解决方案是使用真/假数据变量来设置按钮是否处于活动状态……但我认为使用该once属性也很好……

谢谢

javascript onclick vue.js vuetify.js

2
推荐指数
1
解决办法
2602
查看次数