Ресурс aws_sns_subscription
Используйте ресурс аудита 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/