inspec/test/aws/default/verify/controls/aws_sns_topic.rb

39 lines
1.2 KiB
Ruby
Raw Normal View History

fixtures = {}
[
'sns_topic_recall_hit_arn',
'sns_topic_with_subscription_arn',
'sns_topic_no_subscription_arn',
].each do |fixture_name|
fixtures[fixture_name] = attribute(
fixture_name,
default: "default.#{fixture_name}",
description: 'See ../build/sns.tf',
)
end
control 'aws_sns_topic recall' do
# Split the ARNs so we can test various ways of missing
scheme, partition, service, region, account, topic = fixtures['sns_topic_recall_hit_arn'].split(':')
arn_prefix = [scheme, partition, service].join(':')
# Search miss
no_such_topic_arn = [arn_prefix, region, account, 'no-such-topic-for-realz'].join(':')
describe aws_sns_topic(no_such_topic_arn) do
it { should_not exist }
end
# Search hit
describe aws_sns_topic(fixtures['sns_topic_recall_hit_arn']) do
it { should exist }
end
end
control "aws_sns_topic confirmed_subscription_count property" do
describe aws_sns_topic(fixtures['sns_topic_with_subscription_arn']) do
its('confirmed_subscription_count') { should_not be_zero }
end
describe aws_sns_topic(fixtures['sns_topic_no_subscription_arn']) do
its('confirmed_subscription_count') { should be_zero }
end
end