Ресурс google_kms_crypto_key
Синтаксис
Используется google_kms_crypto_key, чтобы проверить ресурс Google CryptoKey.
Примеры
describe google_kms_crypto_key(project: 'chef-gcp-inspec', location: 'europe-west2', key_ring_name: 'kms-key-ring', name: 'kms-key') do
it { should exist }
its('crypto_key_name') { should cmp 'kms-key' }
its('primary_state') { should eq "ENABLED" }
its('purpose') { should eq "ENCRYPT_DECRYPT" }
its('next_rotation_time') { should be > Time.now - 100000 }
its('create_time') { should be > Time.now - 365*60*60*24*10 }
end
describe google_kms_crypto_key(project: 'chef-gcp-inspec', location: 'europe-west2', key_ring_name: 'kms-key-ring', name: "nonexistent") do
it { should_not exist }
end
Проверка, что ключ шифрования GCP KMS был создан недавно
describe google_kms_crypto_key(project: 'chef-inspec-gcp', location: 'us-east1', key_ring_name: 'key-ring', name: 'crypto-key') do
its('create_time_date') { should be > Time.now - 365*60*60*24*10 }
end
Проверка времени следующей ротации ключа шифрования GCP KMS
describe google_kms_crypto_key(project: 'chef-inspec-gcp', location: 'us-east1', key_ring_name: 'key-ring', name: 'crypto-key') do
its('next_rotation_time_date') { should be > Time.now - 100000 }
end
Проверка, что назначение ключа шифрования соответствует ожиданиям
describe google_kms_crypto_key(project: 'chef-inspec-gcp', location: 'us-east1', key_ring_name: 'key-ring', name: 'crypto-key') do
its('purpose') { should eq "ENCRYPT_DECRYPT" }
end
Проверка, что первичный ключ шифрования находится в состоянии «ВКЛЮЧЕНО»
describe google_kms_crypto_key(project: 'chef-inspec-gcp', location: 'us-east1', key_ring_name: 'key-ring', name: 'crypto-key') do
its('primary_state') { should eq "ENABLED" }
end
Свойства
Свойства, к которым можно получить доступ из ресурса google_kms_crypto_key:
crypto_key_name- Имя ресурса CryptoKey.
create_time- Время создания ресурса на сервере. Формат — RFC3339.
labels- Метки с пользовательскими метаданными для применения к этому ресурсу.
purpose- Неизменяемое назначение этого CryptoKey. См. ссылку на назначение для возможных значений.
Возможные значения:
- ENCRYPT_DECRYPT
- ASYMMETRIC_SIGN
- ASYMMETRIC_DECRYPT
rotation_period- Каждый раз, когда проходит этот период, генерируется новый CryptoKeyVersion и устанавливается в качестве первичного. Первая ротация произойдёт после указанного периода. Период ротации имеет формат десятичного числа с до 9 десятичными знаками, за которым следует буква
s(секунды). Он должен быть больше одного дня (т.е., 86400). version_template- Шаблон, описывающий параметры для новых версий ключа шифрования.
algorithm- Алгоритм, который нужно использовать при создании версии на основе этого шаблона. См. ссылку на алгоритм для возможных значений.
protection_level- Уровень защиты, который нужно использовать при создании версии на основе этого шаблона.
Возможные значения:
- SOFTWARE
- HSM
next_rotation_time- Время, когда KMS создаст новую версию этого Crypto Key.
key_ring- KeyRing, к которому принадлежит этот ключ. Формат:
'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'.
Разрешения GCP
Убедитесь, что для текущего проекта включен API Cloud Key Management Service (KMS) по адресу https://console.cloud.google.com/apis/library/cloudkms.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_kms_crypto_key/