Spec-Zone.ru › Chef 16

Ресурс aws_s3_bucket_object

[edit on GitHub]

Используйте ресурс аудита InSpec для проверки свойств отдельного объекта 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, которое однозначно идентифицирует ведро. Оно должно быть передано как элемент ввода «ключ-значение» в хэше.

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

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

См. также документацию 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