google.cloud.gcp_iam_service_account_key module – Creates a GCP ServiceAccountKey
Note
This module is part of the google.cloud collection (version 1.3.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install google.cloud
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: google.cloud.gcp_iam_service_account_key
.
Synopsis
A service account in the Identity and Access Management API.
Requirements
The below requirements are needed on the host that executes this module.
python >= 2.6
requests >= 2.18.4
google-auth >= 1.3.0
Parameters
Parameter |
Comments |
---|---|
An OAuth2 access token if credential type is accesstoken. |
|
The type of credential used. Choices:
|
|
Specifies which Ansible environment you’re running this module within. This should not be set unless you know what you’re doing. This only alters the User Agent string for any API requests. |
|
Specifies the algorithm for the key. Some valid choices include: “KEY_ALG_UNSPECIFIED”, “KEY_ALG_RSA_1024”, “KEY_ALG_RSA_2048” |
|
The full name of the file that will hold the service account private key. If the file already exists, it will attempt to be read. Ensure the file does not exist or is alreay a valid key. File path must be absolute. |
|
Output format for the service account key. Some valid choices include: “TYPE_UNSPECIFIED”, “TYPE_PKCS12_FILE”, “TYPE_GOOGLE_CREDENTIALS_FILE” |
|
The Google Cloud Platform project to use. |
|
Array of scopes to be used |
|
The name of the serviceAccount. This field represents a link to a ServiceAccount resource in GCP. It can be specified in two ways. First, you can place a dictionary with key ‘name’ and value of your resource’s name Alternatively, you can add `register: name-of-resource` to a gcp_iam_service_account task and then set this service_account field to “{{ name-of-resource }}” |
|
The contents of a Service Account JSON file, either in a dictionary or as a JSON string that represents it. |
|
An optional service account email address if machineaccount is selected and the user does not wish to use the default email. |
|
The path of a Service Account JSON file if serviceaccount is selected as type. |
|
Whether the given object should exist in GCP Choices:
|
Examples
- name: create a service account
google.cloud.gcp_iam_service_account:
name: test-ansible@graphite-playground.google.com.iam.gserviceaccount.com
display_name: My Ansible test key
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: serviceaccount
- name: create a service account key
google.cloud.gcp_iam_service_account_key:
service_account: "{{ serviceaccount }}"
private_key_type: TYPE_GOOGLE_CREDENTIALS_FILE
path: "~/test_account.json"
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
Specifies the algorithm for the key. Returned: success |
|
Specifies the type of the key. Possible values include KEY_TYPE_UNSPECIFIED, USER_MANAGED and SYSTEM_MANAGED . Returned: success |
|
The name of the key. Returned: success |
|
The full name of the file that will hold the service account private key. If the file already exists, it will attempt to be read. Ensure the file does not exist or is alreay a valid key. File path must be absolute. Returned: success |
|
Private key data. Base-64 encoded. Returned: success |
|
Output format for the service account key. Returned: success |
|
Public key data. Base-64 encoded. Returned: success |
|
The name of the serviceAccount. Returned: success |
|
Key can only be used after this time. Returned: success |
|
Key can only be used before this time. Returned: success |