Ресурс aws_s3_bucket_object
Используйте ресурс аудита 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 проверяет, есть ли у объекта потенциально небезопасные параметры доступа. Этот сопоставитель высокого уровня обнаруживает несколько небезопасных условий, которые могут быть расширены в будущем. В настоящее время сопоставитель сообщает о небезопасном объекте, если выполняются следующие условия:
- Разрешение доступа к объекту существует для группы «AllUsers»
- Разрешение доступа к объекту существует для группы «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/