aws_kms – Выполнение различных задач управления KMS
Обзор
- Управление доступом ролей/пользователей к ключу KMS. Не предназначено для шифрования/дешифрования.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| alias - | Псевдоним для ключа. Для безопасности, хотя KMS не требует, чтобы ключи имели псевдоним, этот модуль ожидает, что все новые ключи будут иметь псевдоним для удобства управления. Существующие ключи без псевдонима могут ссылаться на них по key_id. Используйте aws_kms_info для поиска идентификаторов ключей. Требуется, если не указан key_id. Обратите внимание, что передача key_id и alias приведет только к добавлению нового псевдонима, псевдоним никогда не будет переименован. Префикс 'alias/' необязателен. Псевдонимы: key_alias | |
| aws_access_key строка | AWS ключ доступа. Если не задано, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key | |
| aws_secret_key строка | AWS секретный ключ. Если не задано, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key | |
| debug_botocore_endpoint_logs логический тип добавлен в 2.8 |
| Используйте логирование botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, выводит набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, составленный во время выполнения playbook. Также может использоваться переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| description - добавлен в 2.8 | Описание CMK. Используйте описание, которое поможет вам определить, подходит ли CMK для задачи. | |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задано, используется значение переменной окружения EC2_URL, если таковая имеется. | |
| enabled логический тип добавлен в 2.8 |
| Включен или выключен ключ. |
| grants - добавлен в 2.8 | Список разрешений для применения к ключу. Каждый элемент должен содержать grantee_principal. Каждый элемент может также содержать retiring_principal, operations, constraints, name. Допустимые операции: Decrypt, Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintext, ReEncryptFrom, ReEncryptTo, CreateGrant, RetireGrant, DescribeKey, Verify и Sign
Constraints — это словарь, содержащий encryption_context_subset или encryption_context_equals, либо оба, являющиеся словарями, определяющими соответствие контексту шифрования. См. https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html
grantee_principal и retiring_principal должны быть ARNs | |
| key_id - | Идентификатор ключа или ARN ключа. Необходимо указать один из alias или key_id.Псевдонимы: key_arn | |
| policy - добавлен в 2.8 | Политика, применяемая к ключу KMS. | |
| policy_clean_invalid_entries логический тип |
| (устарело) Если добавляется/удаляется роль и найдены недействительные гранты, удалить их. Эти записи приведут к ошибке обновления во всех известных случаях. Очищаются только при внесении изменений. Используется для изменения политики ключа, а не для изменения разрешения, и работает только с политикой по умолчанию, созданной через AWS Console. Этот параметр устарел и будет удален в версии 2.13. Используйте policy вместо него. Псевдонимы: clean_invalid_entries |
| policy_grant_types - | (устарело) Список разрешений, которые нужно предоставить пользователю/роли. Вероятно, "роль, разрешение роли" или "роль, разрешение роли, администратор". Требуется при policy_mode=grant. Используется для изменения политики ключа, а не для изменения разрешения, и работает только с политикой по умолчанию, созданной через AWS Console. Этот параметр устарел и будет удален в версии 2.13. Используйте policy вместо него. Псевдонимы: grant_types | |
| policy_mode - |
| (устарело) Разрешить или запретить доступ. Используется для изменения политики ключа, а не для изменения разрешения, и работает только с политикой по умолчанию, созданной через AWS Console. Этот параметр устарел и будет удален в версии 2.13. Используйте policy вместо него. Псевдонимы: mode |
| policy_role_arn - | (устарело) ARN роли для разрешения/запрещения доступа. Необходимо указать один из policy_role_name или policy_role_arn.Используется для изменения политики ключа, а не для изменения разрешения, и работает только с политикой по умолчанию, созданной через AWS Console. Этот параметр устарел и будет удален в версии 2.13. Используйте policy вместо него. Псевдонимы: role_arn | |
| policy_role_name - | (устарело) Роль для разрешения/запрещения доступа. Необходимо указать один из policy_role_name или policy_role_arn.Используется для изменения политики ключа, а не для изменения разрешения, и работает только с политикой по умолчанию, созданной через AWS Console. Этот параметр устарел и будет удален в версии 2.13. Используйте policy вместо него. Псевдонимы: role_name | |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| purge_grants логический тип добавлен в 2.8 |
| Указывает, должны ли разрешения, отсутствующие в списке grants, быть удалены. |
| purge_tags логический тип добавлен в 2.8 |
| Указывает, должны ли метки, отсутствующие в списке tags, быть удалены. |
| region строка | AWS регион для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если таковая имеется. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
Псевдонимы: aws_region, ec2_region | |
| security_token строка | AWS STS токен безопасности. Если не задано, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token | |
| state - добавлен в 2.8 |
| Ключ должен быть present или absent. Обратите внимание, что установка существующего ключа в состояние absent только запланирует его удаление. Передача ключа, который запланирован на удаление со state present, отменит удаление ключа. |
| tags - добавлен в 2.8 | Словарь меток для применения к ключу. |
| validate_certs boolean |
| Если установлено значение "no", сертификаты SSL не будут проверяться для версий boto >= 2.6.0. |
Примечания
Примечание
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_ACCESS_KEY_IDилиAWS_ACCESS_KEYилиEC2_ACCESS_KEY,AWS_SECRET_ACCESS_KEYилиAWS_SECRET_KEYилиEC2_SECRET_KEY,AWS_SECURITY_TOKENилиEC2_SECURITY_TOKEN,AWS_REGIONилиEC2_REGION - Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно используются для указания региона AWS, когда это необходимо, но это также можно настроить в файле конфигурации boto
Примеры
# Managing the KMS IAM Policy via policy_mode and policy_grant_types is fragile
# and has been deprecated in favour of the policy option.
- name: grant user-style access to production secrets
aws_kms:
args:
alias: "alias/my_production_secrets"
policy_mode: grant
policy_role_name: "prod-appServerRole-1R5AQG2BSEL6L"
policy_grant_types: "role,role grant"
- name: remove access to production secrets from role
aws_kms:
args:
alias: "alias/my_production_secrets"
policy_mode: deny
policy_role_name: "prod-appServerRole-1R5AQG2BSEL6L"
# Create a new KMS key
- aws_kms:
alias: mykey
tags:
Name: myKey
Purpose: protect_stuff
# Update previous key with more tags
- aws_kms:
alias: mykey
tags:
Name: myKey
Purpose: protect_stuff
Owner: security_team
# Update a known key with grants allowing an instance with the billing-prod IAM profile
# to decrypt data encrypted with the environment: production, application: billing
# encryption context
- aws_kms:
key_id: abcd1234-abcd-1234-5678-ef1234567890
grants:
- name: billing_prod
grantee_principal: arn:aws:iam::1234567890123:role/billing_prod
constraints:
encryption_context_equals:
environment: production
application: billing
operations:
- Decrypt
- RetireGrant
Значения возврата
Общие значения возврата документированы здесь, следующие являются полями, уникальными для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| aliases список | всегда | список псевдонимов, связанных с ключом Пример: ['aws/acm', 'aws/ebs'] | |
| aws_account_id строка | всегда | Идентификатор учетной записи AWS, к которой относится ключ Пример: 1234567890123 | |
| changes_needed словарь | всегда | типы разрешений, которые будут изменены/были изменены. Пример: {'role': 'add', 'role grant': 'add'} | |
| creation_date строка | всегда | Дата создания ключа Пример: 2017-04-18T15:12:08.551000+10:00 | |
| description строка | всегда | Описание ключа Пример: Мой ключ для защиты важных данных | |
| enabled строка | всегда | Включен ли ключ. True, если KeyState равно true. | |
| grants сложный | всегда | список разрешений, связанных с ключом | |
| constraints словарь | всегда | Ограничения для контекста шифрования, разрешенные разрешением. Подробнее см. https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html Пример: {'encryption_context_equals': {'aws:lambda:_function_arn': 'arn:aws:lambda:ap-southeast-2:012345678912:function:xyz'}} | |
| creation_date строка | всегда | Дата создания разрешения Пример: 2017-04-18T15:12:08+10:00 | |
| grant_id строка | всегда | Уникальный идентификатор разрешения Пример: abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234 | |
| grantee_principal строка | всегда | Субъект, который получает разрешения разрешения Пример: arn:aws:sts::0123456789012:assumed-role/lambda_xyz/xyz | |
| issuing_account строка | всегда | Учетная запись AWS, под которой было выдано разрешение Пример: arn:aws:iam::01234567890:root | |
| key_id строка | всегда | ARN ключа, к которому применяется разрешение. Пример: arn:aws:kms:ap-southeast-2:123456789012:key/abcd1234-abcd-1234-5678-ef1234567890 | |
| name строка | всегда | Наименование разрешения, которое его идентифицирует Пример: xyz | |
| operations список | всегда | Список операций, разрешенных разрешением Пример: ['Decrypt', 'RetireGrant'] | |
| retiring_principal строка | всегда | Субъект, который может отозвать разрешение Пример: arn:aws:sts::0123456789012:assumed-role/lambda_xyz/xyz | |
| had_invalid_entries логическое | всегда | В записи KMS есть недействительные (не-ARN) записи. Они не считаются изменением, но будут удалены, если какие-либо изменения будут внесены. | |
| key_arn строка | всегда | ARN ключа Пример: arn:aws:kms:ap-southeast-2:123456789012:key/abcd1234-abcd-1234-5678-ef1234567890 | |
| key_id строка | всегда | Идентификатор ключа Пример: abcd1234-abcd-1234-5678-ef1234567890 | |
| key_state строка | всегда | Состояние ключа Пример: PendingDeletion | |
| key_usage строка | всегда | Криптографические операции, которые можно выполнить с помощью ключа. Пример: ENCRYPT_DECRYPT | |
| origin строка | всегда | Источник материала ключа. Когда это значение равно AWS_KMS, материал ключа создан AWS KMS. Когда это значение равно EXTERNAL, материал ключа был импортирован или у CMK отсутствует материал ключа.Пример: AWS_KMS | |
| policies список | всегда | список документов политики для ключей. Пустой, когда доступ запрещён, даже если политики существуют. Пример: {'Version': '2012-10-17', 'Id': 'auto-ebs-2', 'Statement': [{'Sid': 'Разрешить доступ через EBS для всех принципалов в учетной записи, имеющих право использовать EBS', 'Effect': 'Allow', 'Principal': {'AWS': '*'}, 'Action': ['kms:Encrypt', 'kms:Decrypt', 'kms:ReEncrypt*', 'kms:GenerateDataKey*', 'kms:CreateGrant', 'kms:DescribeKey'], 'Resource': '*', 'Condition': {'StringEquals': {'kms:CallerAccount': '111111111111', 'kms:ViaService': 'ec2.ap-southeast-2.amazonaws.com'}}}, {'Sid': 'Разрешить прямой доступ к метаданным ключа для учетной записи', 'Effect': 'Allow', 'Principal': {'AWS': 'arn:aws:iam::111111111111:root'}, 'Action': ['kms:Describe*', 'kms:Get*', 'kms:List*', 'kms:RevokeGrant'], 'Resource': '*'}]} | |
| tags словарь | всегда | словарь тегов, примененных к ключу Пример: {'Name': 'мойКлюч', 'Purpose': 'защита_данных'} | |
Статус
- Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
- Данный модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Ted Timmons (@tedder)
- Will Thames (@willthames)
- Mark Chappell (@tremble)
Подсказка
Если вы заметили какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/aws_kms_module.html