Spec-Zone.ru › Chef 16

Ресурс aws_kms_key

[править на GitHub]

Используйте ресурс аудита aws_kms_key InSpec для проверки свойств одного ключа AWS KMS.

AWS Key Management Service (AWS KMS) — это управляемый сервис, который упрощает создание и управление ключами шифрования, используемыми для шифрования данных. AWS KMS позволяет создавать главные ключи, которые никогда не могут быть экспортированы из сервиса и которые могут использоваться для шифрования и расшифрования данных на основе определенных вами политик.

Каждый ключ AWS KMS уникально идентифицируется его key_id или arn.

Синтаксис

Блок ресурса aws_kms_key идентифицирует ключ по key_arn или id ключа.

# 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 по идентификатору ключа KMS, который может представлять как фактический идентификатор ключа, так и ARN ключа. Это может быть передано либо как строка, либо как key_id: 'value' запись ключ-значение в хэше.

См. также документацию AWS по ключам KMS.

Свойства

Свойство Описание
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, если Origin ключа — 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) см. на странице матчеров.

Используйте 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 или нет. Если он не управляется AWS, он управляется клиентом.

it { should be_managed_by_aws }

have_key_expiration

Указывает, истекает ли ключевой материал ключа. Это значение равно null, если Origin ключа — External.

  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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API