Spec-Zone.ru › Chef 17

Ресурс aws_s3_bucket_object

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

Используйте ресурс аудита InSpec aws_s3_bucket_object для проверки свойств отдельного объекта в AWS-бакете.

Каждый объект S3 имеет ‘ключ’, который можно рассматривать как имя объекта S3, уникально его идентифицирующее.

Синтаксис

Блок ресурса aws_s3_bucket_object объявляет бакет и ключ объекта по имени, а затем перечисляет тесты, которые необходимо выполнить.

describe aws_s3_bucket_object(bucket_name: 'test_bucket', key: 'test_object_key') do
  it { should exist }
  it { should_not be_public }
end

Параметры

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

Имя бакета S3, уникально идентифицирующее бакет. Оно должно быть передано как bucket_name: 'value' ключ-значение в хэше.

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

Ключ объекта в бакете S3, уникально идентифицирующий объект бакета. Он должен быть передан как key: 'value' ключ-значение в хэше.

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

Свойства

Свойство Описание
bucket_name Имя бакета.
key Ключ внутри бакета.
content_length Размер тела в байтах.
content_type Стандартный тип MIME, описывающий формат данных объекта.
object_acl Массив AWS-разрешений, описывающих разрешения на доступ к объекту бакета.

Доступны также дополнительные свойства. Для получения полного списка см. документацию по API.

Примеры

Проверка разрешений доступа к объекту

describe aws_s3_bucket_object(bucket_name: 'test_bucket', key: 'test_key') do
  its('object_acl.count') { should eq 1 }
end

Проверка, что размер объекта в байтах меньше 100000

describe aws_s3_bucket_object(bucket_name: 'test_bucket', key: 'test_key') do
  its('content_length') { should be < 1_000_000 }
end

Проверка, что тип объекта — “image/jpeg”

describe aws_s3_bucket_object(bucket_name: 'test_bucket', key: 'test_key') do
  its('content_type') { should eq "image/jpeg" }
end

Проверка, доступен ли объект для публичного доступа

describe aws_s3_bucket_object(bucket_name: 'test_bucket', key: 'test_key') do
  it { should_not be_public }
end

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

У этого ресурса аудита InSpec есть следующие специальные сопоставители. Для получения полного списка доступных сопоставителей (например, exist) посетите нашу страницу сопоставителей.

be_public

Сопоставитель be_public проверяет, есть ли у объекта потенциально небезопасные разрешения доступа. Этот сопоставитель высокого уровня обнаруживает несколько небезопасных условий, которые могут быть улучшены в будущем. В настоящее время сопоставитель сообщает об небезопасном объекте, если выполняются какие-либо из следующих условий:

  1. Существует разрешение доступа к объекту для группы ‘AllUsers’
  2. Существует разрешение доступа к объекту для группы ‘AuthenticatedUsers’

Примечание

Этот ресурс не обнаруживает небезопасные разрешения доступа к бакетам.
it { should_not be_public }

Разрешения AWS

Вашему Принципалу потребуются s3:GetObject, и s3:GetObjectAcl действия, установленные на разрешение.

Подробную документацию можно найти по адресу Действия, Ресурсы и Ключи Условий для Amazon S3.

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

Spec-Zone.ru

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