Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AWX上安全地使用ssh私钥?_Ssh_Ansible_Ansible Awx - Fatal编程技术网

如何在AWX上安全地使用ssh私钥?

如何在AWX上安全地使用ssh私钥?,ssh,ansible,ansible-awx,Ssh,Ansible,Ansible Awx,我在AWX上保存我的私有ssh密钥时遇到问题,我知道它是加密的,但它并不像我希望的那样安全 您知道在AWX中使用ssh私钥的安全方法吗 现在我使用默认的机器凭据,ssh由AWX加密并存储在postgres db中。最好不要在AWX上存储ssh,而只在需要时传递它(如果不可能,则在启动时提示)在AWX中完全不保留ssh凭据是可能的。为此,您必须进行一些调整。您不需要启动时提示选项。请记住,在作业模板中,ssh凭据是可选的。保存ssh凭据的最佳位置是在Ansible vault中,并且仅将vault

我在AWX上保存我的私有ssh密钥时遇到问题,我知道它是加密的,但它并不像我希望的那样安全

您知道在AWX中使用ssh私钥的安全方法吗


现在我使用默认的机器凭据,ssh由AWX加密并存储在postgres db中。最好不要在AWX上存储ssh,而只在需要时传递它(如果不可能,则在启动时提示)

在AWX中完全不保留ssh凭据是可能的。为此,您必须进行一些调整。您不需要启动时提示选项。请记住,在作业模板中,ssh凭据是可选的。保存ssh凭据的最佳位置是在Ansible vault中,并且仅将vault凭据存储在AWX(作业模板)中。您需要检查如何定义凭据,并将这些信息从您的剧本/工作中移到您的清单中

以下是为实现这一目标所做的更改-

  • 编制特定于环境的清单-不要更改任何其他环境的节点部分的状态,这一点很重要,因此有助于避免运行时出现意外情况

  • 移动凭证信息。将剧本中的内容放入库存中-您可以设置环境。库存水平上的特定变量以及魔术变量。魔术变量是已知的易变的。例如-
    ansible_连接、ansible_用户、ansible_ssh_传递。Ansible理解ok,它必须使用Ansible_用户Ansible_ssh_pass通过ssh登录到机器。
    这样,您就不必在AWX作业模板中提及凭据,并且在模板级别将机器凭据选项保留为空
    下面是我在库存级别定义的变量的快照

  • 变量和vault-请注意,凭证部分包含变量值。显然,我们不想将任何凭证公开为明文。因此,遵循Ansible的最佳实践,让Ansible在未加密文件中找到变量,并且所有敏感变量都来自加密文件,这一点很重要
    我维护一个变量文件,即配置文件和vault,以便在运行时在剧本中呈现。您可以创建一个子目录,比如vars,并将清单变量中提到的作为值的变量映射到vars/var.yml文件。vars.yml可以将键定义为-

    ssh_secret_dev:“{{vault_secret_pass}}”
    ssh\u user\u dev:username
    加密的vault文件可以具有最终值-

    金库密码:非常密码

  • 为什么要跳舞?为什么不定义vault中的所有内容并将库存变量与vault连接起来?这提供了一个额外的安全层,您可以在其中映射可变文件中的安全凭据和vault中的额外机密。显然,vault将被加密,所以您需要在作业模板级别提到vault凭据。作业模板级别的凭据部分将仅包含vault凭据

  • 为作业模板级别的库存选择启动时提示-由于我们制作的是特定于环境的工作流而不是作业模板,因此,我们可以在工作流级别提及库存,并在作业模板级别选择启动时提示选项,以允许库存应用于所有具有启动时提示选项的作业模板
  • 编辑剧本以加载这两个变量文件(vault.yml和vars.yml)

  • 您还可以使用您在库存中定义的任何变量(不是特殊的ansible变量),并在您的剧本中使用它们,这些剧本的值可以从变量文件中选取。

    您希望它有多安全?你怎么知道它不那么安全?现在有多安全?你怎么知道它有多安全?你用什么标准来判断某物有多安全?需要满足哪些安全要求?现在我使用默认的机器凭据,ssh由AWX加密并存储在postgres db中。最好不要将ssh存储在AWX上,而是只在需要时传递它(如果不可能,则在启动时提示),这很好。你能不能用更多的细节来更新你的问题。当前设置是什么。您的安全问题是什么。你想做什么不同的事。这将使人们更容易在特定点上分享他们的知识,而不是仅仅提供可能不适用于您的用例的一般、随机的信息。我知道的安全方法是在AWX中正确创建组织、团队和用户,明智地管理权限并确保AWX机密安装密钥的安全,以便授权用户之外的任何人都不能使用postgres数据库的内容。
    - hosts: localhost
      vars_files:
        - ./vars/vault.yml
        - ./vars/vars.yml
      gather_facts: no
      no_log: true
      tasks:
         - .....some tasks......