Ресурс aws_kms_key
Используйте ресурс проверки InSpec aws_kms_key для проверки свойств отдельного ключа AWS KMS.
AWS Key Management Service (AWS KMS) — это управляемый сервис, который упрощает создание и управление ключами шифрования, используемыми для шифрования данных. AWS KMS позволяет создавать главные ключи, которые никогда не могут быть экспортированы из сервиса и которые могут использоваться для шифрования и дешифрования данных на основе определенных вами политик.
Каждый ключ AWS KMS уникально идентифицируется своим key_id или arn.
Синтаксис
Блок ресурса aws_kms_key идентифицирует ключ по key_arn или идентификатору ключа.
# Find a kms key by arn
describe aws_kms_key('arn:aws:kms:us-east-1::key/4321dcba-21io-23de-85he-ab0987654321') do
it { should exist }
end
# Find a kms key by just the id
describe aws_kms_key('4321dcba-21io-23de-85he-ab0987654321') do
it { should exist }
end
# Hash syntax for key arn
describe aws_kms_key(key_id: 'arn:aws:kms:us-east-1::key/4321dcba-21io-23de-85he-ab0987654321') do
it { should exist }
end
Параметры
alias (обязательно, если key_id не указан)
Этот ресурс позволяет искать ключ KMS по его псевдониму. Он может быть передан как alias: 'alias/value' ключ-значение в хэше. Затем будет использован target_key_id из псевдонима для поиска ключа KMS.
key_id (обязательно, если alias не указан)
Этот ресурс позволяет искать ключ KMS по ID ключа KMS, который может представлять как фактический ID ключа, так и ARN ключа. Он может быть передан как строка или как key_id: 'value' ключ-значение в хэше.
См. также документацию AWS по ключам KS.
Свойства
| Свойство | Описание |
|---|---|
| key_id | Глобально уникальный идентификатор ключа. |
| arn | ARN-идентификатор указанного ключа. |
| creation_date | Указывает дату и время создания ключа. |
| created_days_ago | Указывает количество дней с момента создания ключа. |
| key_state | Указывает состояние ключа: «Enabled», «Disabled», «PendingDeletion», «PendingImport». Чтобы просто проверить, включен ли ключ, используйте be_enabled матчер. |
| description | Описание ключа. |
| deletion_time | Указывает дату и время, после которых AWS KMS удалит ключ. Это значение присутствует только в случае, если KeyState — PendingDeletion, в противном случае это значение nil. |
| invalidation_time | Предоставляет дату и время, до которого ключ недействителен. После того, как ключ недействителен, AWS KMS удаляет ключ, и он становится непригодным для использования. Это значение будет null, если источник ключа не EXTERNAL и матчер have_key_expiration не установлен в true. |
Примеры
Проверка существования указанного ключа
describe aws_kms_key('arn:aws:kms:us-east-1::key/4321dcba-21io-23de-85he-ab0987654321') do
it { should exist }
end
Проверка того, что указанный ключ включён
describe aws_kms_key('arn:aws:kms:us-east-1::key/4321dcba-21io-23de-85he-ab0987654321') do
it { should be_enabled }
end
Проверка того, что указанный ключ поддерживает ротацию
describe aws_kms_key('arn:aws:kms:us-east-1::key/4321dcba-21io-23de-85he-ab0987654321') do
it { should have_rotation_enabled }
end
Проверка того, что ключ был создан не менее 10 дней назад
describe aws_kms_key('arn:aws:kms:us-east-1::key/4321dcba-21io-23de-85he-ab0987654321') do
its('creation_date') { should be < Time.now - 10 * 86400 }
end
Матчеры
Этот ресурс проверки InSpec имеет следующие специальные матчеры. Полный список доступных матчеров (например, exist) можно найти на странице matchers.
Используйте should_not для проверки того, что сущность не должна существовать во всех случаях.
exist
Контроль пройдет, если describe вернёт как минимум один результат.
it { should exist }
it { should_not exist }
be_enabled
Тест пройдёт, если состояние указанного ключа key_state установлено в enabled.
it { should be_enabled }
be_external
Указывает, является ли источник материала ключа внешним. Если он не внешний, то он был создан AWS KMS. Если внешний, материал ключа был импортирован из существующей инфраструктуры управления ключами или у ключа нет материала ключа.
it { should be_external }
be_managed_by_aws
Указывает, управляет ли ключом AWS. Если не управляет, то он управляется клиентом.
it { should be_managed_by_aws }
have_key_expiration
Указывает, истекает ли материал ключа. Это значение null, если источник ключа не внешний.
it { should have_key_expiration }
have_rotation_enabled
Тест пройдёт, если автоматическая ротация материала ключа включена для указанного ключа.
it { should have_rotation_enabled }
Разрешения AWS
Вашему Принципалу потребуются kms:DescribeKey, и kms:GetKeyRotationStatus действия, установленные на разрешение.
Подробную документацию можно найти в Действия, Ресурсы и Ключи условий для AWS Key Management Service.
© 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/aws_kms_key/