Spec-Zone.ru › Chef 16

Ресурс aws_sns_subscription

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

Используйте ресурс аудита InSpec aws_sns_subscription для проверки подробных свойств подписки AWS SNS.

Синтаксис

Блок ресурса aws_sns_subscription использует параметры ресурса для поиска подписки SNS и затем проверяет свойства подписок. Если подписки не найдены, ошибка не генерируется, но exists соответствие вернёт false, и все свойства будут nil.

describe aws_sns_subscription('arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6') do
  it { should exist }
end

Параметры

subscription_arn (обязательно)

Этот ресурс принимает один параметр — subscription_arn. Он может быть передан либо как строка, либо как subscription_arn: 'value' элемент пар ключ-значение в хэше.

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

Свойства

Свойство Описание
arn Целое число, обозначающее минимальное количество экземпляров в группе автомасштабирования
owner Целое число, обозначающее максимальное количество экземпляров в группе автомасштабирования
raw_message_delivery Целое число, обозначающее желаемое количество экземпляров в группе автомасштабирования
topic_arn Имя конфигурации запуска автомасштабирования, связанной с группой автомасштабирования
protocol Массив строк, соответствующих идентификаторам подсетей, связанным с группой автомасштабирования
confirmation_was_authenticated Хэш, где каждая пара ключ-значение соответствует тегу, связанному с сущностью

Примеры

Проверка конечной точки

describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6' ) do
  # If protocol is 'sms', this should be a phone number:
  its('endpoint') { should cmp '+16105551234' }
  # If protocol is 'email' or 'email-json', endpoint should be an email address
  its('endpoint') { should cmp 'myemail@example.com' }
  # If protocal is 'http', endpoint should be a URL beginning with 'https://'
  its('endpoint') { should cmp 'https://www.exampleurl.com' }
  # If the protocol is 'lambda', its endpoint should be the ARN of a AWS Lambda function
  its('endpoint') { should cmp 'rn:aws:lambda:us-east-1:account-id:function:myfunction' }
end

Проверка идентификатора владельца

describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6' ) do
  its('owner') { should cmp '12345678' }
end

Проверка конечной точки

describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6' ) do
  its('protocol') { should cmp 'sqs' }
end

Сопоставители

exist

Управление пройдёт, если описывающий запрос вернёт по меньшей мере один результат.

Используйте should_not для проверки, что сущность не должна существовать.

  it { should exist }

  it { should_not exist }

be_confirmation_authenticated

Указывает, была ли подтверждена подписка по запросу.

describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::NOGOOD:b214aff5-a2c7-438f-a753-8494493f2ff6')
  it { should be_confirmation_authenticated }
end

have_raw_message_delivery

Указывает, передаётся ли исходное сообщение как есть, без форматирования в JSON или YAML.

describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::NOGOOD:b214aff5-a2c7-438f-a753-8494493f2ff6')
  it { should have_raw_message_delivery }
end

Разрешения AWS

У вашего Принципала должно быть разрешение на действие sns:GetSubscriptionAttributes с эффектом Allow.

Вы можете найти подробную документацию по действиям, ресурсам и ключам условий для Amazon SNS.

© 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_sns_subscription/

Spec-Zone.ru

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