aws_kms – Выполнение различных задач управления KMS
Новое в версии 2.3.
Обзор
- Управление доступом роли/пользователя к ключу KMS. Не предназначено для шифрования/дешифрования.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| alias - | Псевдоним для ключа. Для безопасности, хотя KMS не требует, чтобы ключи имели псевдоним, этот модуль ожидает, что все новые ключи будут иметь псевдоним, чтобы их было легче управлять. Существующие ключи без псевдонима могут быть указаны по key_id. Используйте aws_kms_facts для поиска идентификаторов ключей. Требуется, если не указан 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 | |
| clean_invalid_entries логическое |
| Если добавляется/удаляется роль и обнаружены недействительные получатели, они удаляются. Эти записи приведут к неудачному обновлению во всех известных случаях. Очистка выполняется только при внесении изменений. |
| debug_botocore_endpoint_logs логическое добавлен в 2.8 |
| Используйте регистрирующий элемент botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие» во время выполнения задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action, чтобы вывести в список всех вызовов, выполненных во время исполнения playbooks. Переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS также может быть использована. |
| description - добавлен в 2.8 | Описание CMK. Используйте описание, которое поможет вам определить, подходит ли CMK для задачи. | |
| ec2_url строка | URL для подключения к EC2 или вашей облачной платформе Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL (если таковая имеется). | |
| enabled логическое добавлен в 2.8 |
| Включен ли ключ. |
| grant_types - | Список разрешений, которые нужно предоставить пользователю/роли. Вероятно, «роль, разрешение роли» или «роль, разрешение роли, админ». Требуется, когда mode=grant. | |
| 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 | |
| mode - |
| Разрешить или запретить доступ. |
| policy - добавлен в 2.8 | Политика для применения к ключу KMS | |
| 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 | |
| role_arn - | ARN роли, для которой разрешен/запрещен доступ. Требуется один из role_name или role_arn. | |
| role_name - | Роль, для которой разрешен/запрещен доступ. Требуется один из role_name или role_arn. | |
| security_token строка | AWS STS security token. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | |
| state - добавлен в 2.8 |
| Указывает, должен ли ключ присутствовать или отсутствовать. Обратите внимание, что установка ключа в состояние «отсутствует» только запланирует его удаление. Передача ключа, запланированного на удаление, в состояние «наличие», отменит удаление. |
| tags - добавлен в 2.8 | Словарь тегов для применения к ключу. | |
| validate_certs логическое |
| При установке в «нет», сертификаты 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
Примеры
- name: grant user-style access to production secrets
aws_kms:
args:
mode: grant
alias: "alias/my_production_secrets"
role_name: "prod-appServerRole-1R5AQG2BSEL6L"
grant_types: "role,role grant"
- name: remove access to production secrets from role
aws_kms:
args:
mode: deny
alias: "alias/my_production_secrets"
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': 'Allow access through EBS for all principals in the account that are authorized to use 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': 'Allow direct access to key metadata to the account', 'Effect': 'Allow', 'Principal': {'AWS': 'arn:aws:iam::111111111111:root'}, 'Action': ['kms:Describe*', 'kms:Get*', 'kms:List*', 'kms:RevokeGrant'], 'Resource': '*'}]} | |
| tags словарь | всегда | словарь тегов, применённых к ключу Пример: {'Name': 'myKey', 'Purpose': 'protecting_stuff'} | |
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [предварительный просмотр]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Ted Timmons (@tedder)
- Will Thames (@willthames)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/aws_kms_module.html