google.cloud.gcp_secret_manager 查找 – 从 Google Cloud 获取密钥作为查找插件

注意

此查找插件是 google.cloud 集合(版本 1.4.1)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install google.cloud

要在 playbook 中使用它,请指定:google.cloud.gcp_secret_manager

注意

由于违反 Ansible 包含要求,google.cloud 集合将从 Ansible 12 中删除。该集合有未解决的健全性测试失败。有关更多信息,请参阅讨论主题

概要

  • 检索 Secret Manager 中的密钥以在 playbook 中使用

  • 有关创建 Google Cloud 凭据和此类凭据格式的详细信息,请参阅https://cloud.google.com/iam/docs/service-account-creds

  • 一旦检索到密钥值,它将以解码后的形式返回。开发人员有责任在返回后保持此值的机密性。

关键字参数

这描述了查找的关键字参数。这些是以下示例中的值 key1=value1key2=value2 等:lookup('google.cloud.gcp_secret_manager', key1=value1, key2=value2, ...)query('google.cloud.gcp_secret_manager', key1=value1, key2=value2, ...)

参数

注释

access_token

字符串

支持 GCP 访问令牌

如果不存在,则默认为操作系统环境变量 GCP_ACCESS_TOKEN

auth_kind

字符串

要与 Google Cloud 一起使用的身份验证类型(即 serviceaccount 或 machineaccount)

如果不存在,则默认为操作系统环境变量 GCP_AUTH_KIND

key

别名:name、secret、secret_id

字符串 / 必需

要在 Secret Manager 中查找的密钥的名称

on_error

字符串

如何处理错误

strict 表示引发异常

warn 表示警告,并返回 none

ignore 表示只返回 none

选项

  • "strict" ←(默认)

  • "warn"

  • "ignore"

project

字符串

Google Cloud 项目的名称

如果不存在,则默认为操作系统环境变量 GCP_PROJECT

scopes

列表 / elements=字符串

Google Secret Manager 的身份验证范围

默认值: ["https://www.googleapis.com/auth/cloud-platform"]

service_account_email

字符串

与服务帐户关联的电子邮件

如果不存在,则默认为操作系统环境变量 GCP_SERVICE_ACCOUNT_EMAIL

service_account_file

字符串

从 Google Cloud 获取的 JSON 凭据文件

如果不存在,则默认为操作系统环境变量 GCP_SERVICE_ACCOUNT_FILE

有关详细信息,请参阅https://cloud.google.com/iam/docs/service-account-creds

service_account_info

jsonarg

表示从 Google Cloud 获取的 service_account_file 内容的 JSON 对象

如果不存在,则默认为操作系统环境变量 GCP_SERVICE_ACCOUNT_INFO

version

字符串

要检索的密钥的版本名称

默认值: "latest"

示例

- name: Test secret using env variables for credentials
  ansible.builtin.debug:
    msg: "{{ lookup('google.cloud.gcp_secret_manager', key='secret_key') }}"

- name: Test secret using explicit credentials
  ansible.builtin.debug:
    msg: "{{ lookup('google.cloud.gcp_secret_manager', key='secret_key', project='project', auth_kind='serviceaccount', service_account_file='file.json') }}"

- name: Test getting specific version of a secret (old version)
  ansible.builtin.debug:
    msg: "{{ lookup('google.cloud.gcp_secret_manager', key='secret_key', version='1') }}"

- name: Test getting specific version of a secret (new version)
  ansible.builtin.debug:
    msg: "{{ lookup('google.cloud.gcp_secret_manager', key='secret_key', version='2') }}"

返回值

描述

返回值

列表 / elements=字符串

请求的密钥的内容(请使用“no_log”来不公开此密钥)

返回: 成功

作者

  • Dave Costakos

提示

每个条目类型的配置条目都具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。