Ресурс aws_iam_access_keys
Используйте ресурс аудита aws_iam_access_keys InSpec для проверки свойств некоторых или всех ключей доступа AWS IAM.
Синтаксис
Блок ресурса aws_iam_access_keys возвращает все ключи доступа IAM и позволяет проверить эту группу ключей доступа.
describe aws_iam_access_keys do
it { should exist }
its('access_key_ids') { should include 'AKIA1111111111111111' }
end
Параметры
Этот ресурс принимает один необязательный параметр — имя пользователя, для которого необходимо получить все ключи доступа. Если он не указан, будут получены все ключи доступа для всех пользователей.
username (необязательно)
Имя пользователя IAM, для которого необходимо получить ключи доступа. Его можно передать как строку или как запись username: 'value' ключ-значение в хэше.
См. также документацию AWS по ключам доступа IAM.
Свойства
| Свойство | Описание |
|---|---|
| access_key_id | Идентификатор ключа доступа. |
| username | Имя пользователя IAM, связанное с ключом доступа. |
| active | Указывает, активен ли ключ. |
| inactive | Указывает, неактивен ли ключ. |
| ever_used | Указывает, использовался ли ключ хотя бы раз. |
| never_used | Указывает, не использовался ли ключ никогда. |
| create_date | Дата создания ключа доступа. |
| created_days_ago | Количество дней, прошедших с момента создания ключа доступа. |
| created_hours_ago | Количество часов, прошедших с момента создания ключа доступа. |
| created_with_user | Булево значение, указывающее, создан ли ключ доступа вместе с пользователем. |
| last_used_date | Дата последнего использования ключа доступа. |
| last_used_hours_ago | Количество часов, прошедших с момента последнего использования ключа. |
| last_used_days_ago | Количество дней, прошедших с момента последнего использования ключа. |
| user_created_date | Дата создания связанного пользователя. |
| entries | Предоставляет доступ к исходным результатам запроса, которые можно рассматривать как массив хэшей. |
Примеры
Проверка всех активных ключей
describe aws_iam_access_keys.where(active: true) do
its('access_key_ids') { should include 'AKIA1111111111111111' }
end
Убедиться, что у пользователя нет ключей доступа
describe aws_iam_access_keys.where(username: 'untrusted-account') do
it { should_not exist }
end
Сопоставители
Полный список доступных сопоставителей можно найти на странице сопоставителей.
exist
Управление пройдет, если описание вернет хотя бы один результат.
Используйте should_not для проверки, что сущность не должна существовать.
it { should exist }
it { should_not exist }
Разрешения AWS
Вашему принципалу потребуются следующие разрешения, установленные на значение «Разрешить»: iam:GetUser iam:GetAccessKeyLastUsed iam:ListUsers iam:ListAccessKeys
© 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_iam_access_keys/