Spec-Zone.ru › Chef 17

ресурс aws_elb

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

Используйте ресурс аудита InSpec aws_elb для проверки свойств отдельного балансировщика нагрузки AWS Elastic Load Balancing (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, которое однозначно идентифицирует балансировщик. Его можно передать либо в виде строки, либо как load_balancer_name: 'value' элемент пары «ключ-значение» в хэше.

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

Свойства

Свойство Описание
load_balancer_name Имя балансировщика.
dns_name DNS-имя балансировщика.
availability_zones Зоны доступности для балансировщика.
instance_ids Массив, содержащий все идентификаторы экземпляров, связанные с балансировщиком.
external_ports Массив внешних портов, экспонированных на балансировщике.
internal_ports Массив внутренних портов, экспонированных на балансировщике.
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

Обеспечение правильного количества экземпляров EC2, связанных с ELB

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

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

Используйте 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