Spec-Zone.ru › Chef 16

aws_elb ресурс

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

Используйте ресурс аудита InSpec aws_elb для проверки свойств отдельного балансировщика нагрузки AWS Elastic Load Balancer (ELB).

Синтаксис

Блок ресурса aws_elb объявляет тесты для одного балансировщика AWS ELB по имени балансировщика. Имена AWS ELB уникальны в каждом регионе.

describe aws_elb('my-elb') do
  it { should exist }
end

describe aws_elb(load_balancer_name: 'my-elb') do
  it { should exist }
end

Параметры

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

Этот ресурс принимает один параметр — имя ELB, которое однозначно идентифицирует ELB. Его можно передать либо как строку, либо как load_balancer_name: 'value' пару ключ-значение в хэше.

См. также документацию AWS по балансировщикам нагрузки.

Свойства

Свойство Описание
load_balancer_name Имя балансировщика.
dns_name Имя DNS балансировщика.
availability_zones Зоны доступности для балансировщика.
instance_ids Массив, содержащий все идентификаторы экземпляров, связанные с ELB.
external_ports Массив внешних портов, открытых на ELB.
internal_ports Массив внутренних портов, открытых на ELB.
security_group_ids Группы безопасности для балансировщика. Действительно только для балансировщиков в VPC.
vpc_id Идентификатор VPC для балансировщика.
subnet_ids Идентификаторы подсетей для балансировщика.
listeners Коллекция слушателей для балансировщика.
ssl_policies Коллекция SSL-политик, используемых для балансировщика (и их атрибутов политики).
protocols Список протоколов, настроенных для слушателей балансировщика.

Примеры

Проверка правильной настройки зон доступности ELB

describe aws_elb('prod_web_app_elb') do
  its('availability_zones.count') { should be > 1 }
  its('availability_zones')       { should include 'us-east-2a' }
  its('availability_zones')       { should include 'us-east-2b' }
end

Убедитесь, что с ELB связано правильное количество экземпляров EC2

describe aws_elb('prod_web_app_elb') do
  its('instance_ids.count') { should cmp 3 }
end

Убедитесь, что установлен правильный DNS

describe aws_elb('prod_web_app_elb') do
  its('dns_name') { should cmp 'your-fqdn.com' }
end

Убедитесь, что открыт только порт 80, как для публичного, так и для внутреннего доступа

describe aws_elb('prod_web_app_elb') do
  its('external_ports.count') { should cmp 1 }
  its('external_ports')       { should include 80 }
  its('internal_ports.count') { should cmp 1 }
  its('internal_ports')       { should include 80 }
end

Убедитесь, что связаны правильные экземпляры EC2

describe aws_elb('prod_web_app_elb') do
  its('instance_ids') { should include 'i-12345678' }
end

Обработчики

У этого ресурса аудита InSpec нет специальных обработчиков. Полный список доступных обработчиков см. на нашей странице Универсальные обработчики.

exist

Управление будет выполнено, если describe вернет хотя бы один результат.

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

describe aws_elb('AnExistingELB') do
  it { should exist }
end

describe aws_elb('ANonExistentELB') do
  it { should_not exist }
end

Разрешения AWS

У вашего принципала должно быть разрешение elasticloadbalancing:DescribeLoadBalancers.

Подробную документацию можно найти по адресу Аутентификация и контроль доступа к балансировщикам

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

Spec-Zone.ru

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