Spec-Zone.ru › Chef 18

Ресурс aws_kms_key

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

Используйте ресурс проверки 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/

Spec-Zone.ru

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