Ключ сервисного аккаунта Google
Синтаксис
Для проверки ресурса Google ServiceAccountKey используется google_service_account_key
Примеры
google_service_account_keys(project: 'chef-gcp-inspec', service_account: "display-name@project-id.iam.gserviceaccount.com").key_names.each do |sa_key_name|
describe google_service_account_key(project: 'chef-gcp-inspec', service_account: "display-name@project-id.iam.gserviceaccount.com", name: sa_key_name.split('/').last) do
it { should exist }
its('key_type') { should_not cmp 'USER_MANAGED' }
end
end
Проверка, что ключ сервисного аккаунта GCP проекта имеет ожидаемый алгоритм ключа
describe google_service_account_key(name: "projects/sample-project/serviceAccounts/test-sa@sample-project.iam.gserviceaccount.com/keys/c6bd986da9fac6d71178db41d1741cbe751a5080" ) do
its('key_algorithm') { should eq "KEY_ALG_RSA_2048" }
end
Свойства
Свойства, к которым можно получить доступ из ресурса google_service_account_key:
name- Имя ключа.
private_key_type- Формат вывода ключа сервисного аккаунта.
Возможные значения:
- TYPE_UNSPECIFIED
- TYPE_PKCS12_FILE
- TYPE_GOOGLE_CREDENTIALS_FILE
key_algorithm- Указывает алгоритм ключа.
Возможные значения:
- KEY_ALG_UNSPECIFIED
- KEY_ALG_RSA_1024
- KEY_ALG_RSA_2048
private_key_data- Данные закрытого ключа. Кодировка Base-64.
public_key_data- Данные открытого ключа. Кодировка Base-64.
valid_after_time- Ключ может быть использован только после этой даты.
valid_before_time- Ключ может быть использован только до этой даты.
key_type- Указывает тип ключа.
Возможные значения:
- KEY_TYPE_UNSPECIFIED
- USER_MANAGED
- SYSTEM_MANAGED
service_account- Имя сервисного аккаунта.
path- Полное имя файла, который будет содержать закрытый ключ сервисного аккаунта. Управление этим файлом зависит от параметра sync_file. Путь к файлу должен быть абсолютным.
Разрешения GCP
Убедитесь, что API «Управление идентификацией и доступом (IAM)» https://console.cloud.google.com/apis/library/iam.googleapis.com/ включен для текущего проекта.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_service_account_key/