Spec-Zone.ru › Ansible

Модуль amazon.aws.kms_key — выполнение различных задач управления ключами KMS

Примечание

Этот модуль входит в коллекцию amazon.aws (версия 11.3.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install amazon.aws. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: amazon.aws.kms_key.

Добавлено в amazon.aws 5.0.0

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Управление доступом ролей и пользователей к ключу KMS.
  • Не предназначен для шифрования и расшифровки.
  • До выпуска версии 5.0.0 этот модуль назывался community.aws.aws_kms. Использование не изменилось.
  • Впервые модуль был добавлен в community.aws в выпуске 1.0.0.

Псевдонимы: aws_kms

Требования

Перечисленные ниже требования должны быть выполнены на хосте, который выполняет этот модуль.

  • python >= 3.6
  • boto3 >= 1.35.0
  • botocore >= 1.35.0

Параметры

Параметр

Комментарии

access_key

псевдонимы: aws_access_key_id, aws_access_key

строка

Идентификатор ключа доступа AWS.

Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные среды AWS_ACCESS_KEY_ID или AWS_ACCESS_KEY в порядке убывания приоритета.

Параметры aws_access_key и profile являются взаимоисключающими.

Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для согласованности с AWS botocore SDK.

alias

псевдонимы: key_alias

строка

Псевдоним ключа.

В целях безопасности этот модуль требует, чтобы всем новым ключам был назначен псевдоним, хотя KMS этого не требует, — так ими проще управлять. Существующие ключи без псевдонима можно указать с помощью key_id. Используйте amazon.aws.kms_key_info, чтобы найти идентификаторы ключей.

Обратите внимание: передача key_id и alias приведет только к добавлению нового псевдонима; переименование псевдонима не выполняется.

Префикс alias/ указывать необязательно.

Обязателен, если не задан key_id.

aws_ca_bundle

путь

Путь к пакету сертификатов CA, который используется для проверки SSL-сертификатов.

Также можно использовать переменную среды AWS_CA_BUNDLE.

aws_config

словарь

Словарь для изменения конфигурации botocore.

Параметры описаны в документации AWS: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.

debug_botocore_endpoint_logs

логический

Использовать логгер botocore.endpoint для анализа уникальных (а не общего количества) вызовов API "resource:action", выполненных во время задачи, и выводить их набор в ключ resource_actions результатов задачи. Используйте обработчик обратного вызова aws_resource_action, чтобы вывести общий список вызовов, выполненных во время плейбука.

Также можно использовать переменную среды ANSIBLE_DEBUG_BOTOCORE_LOGS.

Варианты:

  • false ← (по умолчанию)
  • true

description

строка

Описание CMK.

Укажите описание, которое поможет определить, подходит ли CMK для конкретной задачи.

enable_key_rotation

логический

Следует ли автоматически выполнять ротацию ключа каждый год.

Варианты:

  • false
  • true

enabled

логический

Включен ли ключ.

Варианты:

  • false
  • true ← (по умолчанию)

endpoint_url

псевдонимы: aws_endpoint_url

строка

URL для подключения вместо конечных точек AWS по умолчанию. Хотя этот параметр можно использовать для подключения к другим совместимым с AWS сервисам, коллекции amazon.aws и community.aws проверяются только с AWS.

Также можно использовать переменную среды AWS_URL.

grants

список / элементы=словарь

Список разрешений, применяемых к ключу. Каждый элемент должен содержать grants.grantee_principal. Необязательно, каждый элемент может содержать grants.retiring_principal, grants.operations, grants.constraints, grants.name.

Значения grants.grantee_principal и grants.retiring_principal должны быть ARN.

Полное описание вложенных параметров см. в документации boto3:

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/kms.html#KMS.Client.create_grant

По умолчанию: []

constraints

словарь

Constraints — это словарь, содержащий encryption_context_subset или encryption_context_equals, либо оба значения; каждое из них представляет собой словарь, задающий соответствие контекста шифрования. См. https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html или https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/kms.html#KMS.Client.create_grant

grantee_principal

строка / обязательный

Полный ARN субъекта, которому предоставляются разрешения.

name

строка

Понятное имя разрешения.

Используйте это значение, чтобы предотвратить непреднамеренное создание дублирующих разрешений при повторной отправке этого запроса.

operations

список / элементы=строка

Список операций, которые получатель разрешения может выполнять с помощью CMK.

Варианты:

  • "Decrypt"
  • "Encrypt"
  • "GenerateDataKey"
  • "GenerateDataKeyWithoutPlaintext"
  • "ReEncryptFrom"
  • "ReEncryptTo"
  • "CreateGrant"
  • "RetireGrant"
  • "DescribeKey"
  • "Verify"
  • "Sign"

retiring_principal

строка

Полный ARN субъекта, которому разрешено отзывать/аннулировать разрешение.

key_id

псевдонимы: key_arn

строка

Идентификатор или ARN ключа.

Необходимо указать alias или key_id.

key_spec

псевдонимы: customer_master_key_spec

строка

добавлено в community.aws 2.1.0

Задает тип создаваемого ключа KMS.

После создания ключа изменить его спецификацию нельзя.

Варианты:

  • "SYMMETRIC_DEFAULT" ← (по умолчанию)
  • "RSA_2048"
  • "RSA_3072"
  • "RSA_4096"
  • "ECC_NIST_P256"
  • "ECC_NIST_P384"
  • "ECC_NIST_P521"
  • "ECC_SECG_P256K1"

key_usage

строка

добавлено в community.aws 2.1.0

Определяет криптографические операции, для которых можно использовать ключ KMS.

После создания ключа изменить назначение нельзя.

Варианты:

  • "ENCRYPT_DECRYPT" ← (по умолчанию)
  • "SIGN_VERIFY"

multi_region

логический

добавлено в amazon.aws 5.5.0

Создавать ли основной ключ для нескольких регионов.

Варианты:

  • false ← (по умолчанию)
  • true

pending_window

псевдонимы: deletion_delay

целое число

добавлено в community.aws 1.4.0

Количество дней между запросом на удаление CMK и фактическим удалением.

Используется только при state=absent, если CMK еще не удален.

Допустимые значения: от 7 до 30 включительно.

См. также: https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html#KMS-ScheduleKeyDeletion-request-PendingWindowInDays

policy

json

Политика, применяемая к ключу KMS.

См. https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html

profile

псевдонимы: aws_profile

строка

Именованный профиль AWS для аутентификации.

Дополнительные сведения об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

Также можно использовать переменную среды AWS_PROFILE.

Параметр profile взаимоисключающий с параметрами aws_access_key, aws_secret_key и session_token.

purge_grants

логический

Следует ли удалять разрешения, отсутствующие в списке, если задан аргумент grants.

Варианты:

  • false ← (по умолчанию)
  • true

purge_tags

логический

Если задано purge_tags=true и указан параметр tags, существующие теги ресурса будут удалены, чтобы набор тегов точно соответствовал заданному параметром tags.

Если параметр tags не задан, теги не будут изменены, даже если указано purge_tags=True.

Ключи тегов, начинающиеся с aws:, зарезервированы Amazon и не могут быть изменены. Поэтому при обработке параметра purge_tags они игнорируются. Дополнительные сведения см. в документации Amazon: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions.

Варианты:

  • false
  • true ← (по умолчанию)

region

псевдонимы: aws_region

строка

Регион AWS для использования.

Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется.

Также можно использовать переменную среды AWS_REGION.

Дополнительные сведения см. в документации Amazon AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

secret_key

псевдонимы: aws_secret_access_key, aws_secret_key

строка

Секретный ключ доступа AWS.

Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные среды AWS_SECRET_ACCESS_KEY или AWS_SECRET_KEY в порядке убывания приоритета.

Параметры secret_key и profile являются взаимоисключающими.

Псевдоним aws_secret_access_key добавлен в выпуске 5.1.0 для согласованности с AWS botocore SDK.

session_token

псевдонимы: aws_session_token

строка

Токен сеанса AWS STS для использования с временными учетными данными.

Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменную среды AWS_SESSION_TOKEN.

Параметры session_token и profile являются взаимоисключающими.

state

строка

Должен ли ключ присутствовать или отсутствовать.

Обратите внимание: перевод существующего ключа в состояние absent только планирует его удаление.

Если передать ключ, запланированный к удалению, со значением state=present, удаление ключа будет отменено.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

tags

псевдонимы: resource_tags

словарь

Словарь тегов, применяемых к ресурсу.

Если параметр tags не задан, теги не будут изменены.

validate_certs

логический

Если задано значение false, SSL-сертификаты при обмене данными с API AWS проверяться не будут.

Настоятельно не рекомендуется устанавливать validate_certs=false; вместо этого рассмотрите возможность задания параметра aws_ca_bundle.

Варианты:

  • false
  • true ← (по умолчанию)

Примечания

Примечание

  • Известно, что время, необходимое для полного применения изменений ключей KMS в AWS, может быть непредсказуемым. Это может вызвать проблемы при последовательном запуске дублирующихся задач или использовании модуля amazon.aws.kms_key_info для получения метаданных ключа вскоре после его изменения. Поэтому для получения метаданных ключа рекомендуется использовать возвращаемые данные этого модуля (amazon.aws.kms_key).
  • Возвращаемый ключ policies удален в выпуске amazon.aws 8.0.0.
  • Внимание: Для модулей переменные среды и файлы конфигурации считываются из контекста «хоста» Ansible, а не из контекста «контроллера». Поэтому может потребоваться явно скопировать файлы на «хост». Для плагинов поиска и подключения переменные среды и файлы конфигурации считываются из контекста «контроллера» Ansible, а не из контекста «хоста».
  • Используемый Ansible пакет AWS SDK (boto3) также может считывать значения по умолчанию для учетных данных и других настроек, например региона, из файлов конфигурации в контексте «хоста» Ansible (обычно ~/.aws/credentials). Дополнительные сведения см. по адресу https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.

Примеры

# Create a new KMS key
- amazon.aws.kms_key:
    alias: mykey
    tags:
      Name: myKey
      Purpose: protect_stuff

# Create a new multi-region KMS key
- amazon.aws.kms_key:
    alias: mykey
    multi_region: true
    tags:
      Name: myKey
      Purpose: protect_stuff

# Update previous key with more tags
- amazon.aws.kms_key:
    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
- amazon.aws.kms_key:
    key_id: abcd1234-abcd-1234-5678-ef1234567890
    grants:
      - name: billing_prod
        grantee_principal: arn:aws:iam::123456789012:role/billing_prod
        constraints:
          encryption_context_equals:
            environment: production
            application: billing
        operations:
          - Decrypt
          - RetireGrant

- name: Update IAM policy on an existing KMS key
  amazon.aws.kms_key:
    alias: my-kms-key
    policy: '{"Version": "2012-10-17", "Id": "my-kms-key-permissions", "Statement": [ { <SOME STATEMENT> } ]}'
    state: present

- name: Example using lookup for policy json
  amazon.aws.kms_key:
    alias: my-kms-key
    policy: "{{ lookup('template', 'kms_iam_policy_template.json.j2') }}"
    state: present

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

aliases

list / elements=string

Список псевдонимов, связанных с ключом.

Возвращается: всегда

Пример: ["aws/acm", "aws/ebs"]

aws_account_id

string

ID учетной записи AWS, которой принадлежит ключ.

Возвращается: всегда

Пример: "1234567890123"

changes_needed

dictionary

Типы разрешений, которые будут изменены или были изменены.

Возвращается: всегда

Пример: {"role": "add", "role grant": "add"}

creation_date

string

Дата и время создания ключа.

Возвращается: всегда

Пример: "2017-04-18T15:12:08.551000+10:00"

customer_master_key_spec

string

Указывает тип создаваемого ключа KMS.

Возвращается: всегда

Пример: "SYMMETRIC_DEFAULT"

deletion_date

string

добавлено в community.aws 3.3.0

Дата и время, после которых KMS удалит этот ключ KMS.

Возвращается: когда key_state имеет значение PendingDeletion

Пример: "2017-04-18T15:12:08.551000+10:00"

description

string

Описание ключа.

Возвращается: всегда

Пример: "My Key for Protecting important stuff"

enable_key_rotation

boolean

Включена ли автоматическая ежегодная ротация ключа. Возвращает None, если состояние ротации ключа определить невозможно.

Возвращается: всегда

Пример: false

enabled

boolean

Включен ли ключ. Значение True, если key_state имеет значение Enabled.

Возвращается: всегда

Пример: false

encryption_algorithms

list / elements=string

Алгоритмы шифрования, поддерживаемые ключом KMS.

Возвращается: всегда

Пример: ["SYMMETRIC_DEFAULT"]

grants

list / elements=dictionary

Список разрешений, связанных с ключом.

Возвращается: всегда

constraints

dictionary

Ограничения на контекст шифрования, разрешенный данным разрешением. Дополнительные сведения см. на странице https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html

Возвращается: всегда

Пример: {"encryption_context_equals": {"aws:lambda:_function_arn": "arn:aws:lambda:ap-southeast-2:123456789012:function:xyz"}}

creation_date

string

Дата создания разрешения.

Возвращается: всегда

Пример: "2017-04-18T15:12:08+10:00"

grant_id

string

Уникальный идентификатор разрешения.

Возвращается: всегда

Пример: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"

grantee_principal

string

Субъект, получающий разрешения по данному разрешению.

Возвращается: всегда

Пример: "arn:aws:sts::123456789012:assumed-role/lambda_xyz/xyz"

issuing_account

string

Учетная запись AWS, от имени которой было выдано разрешение.

Возвращается: всегда

Пример: "arn:aws:iam::123456789012:root"

key_id

string

ARN ключа, к которому применяется разрешение.

Возвращается: всегда

Пример: "arn:aws:kms:ap-southeast-2:123456789012:key/abcd1234-abcd-1234-5678-ef1234567890"

name

string

Удобное для чтения имя, идентифицирующее разрешение.

Возвращается: всегда

Пример: "xyz"

operations

list / elements=string

Список операций, разрешенных данным разрешением.

Возвращается: всегда

Пример: ["Decrypt", "RetireGrant"]

retiring_principal

string

Субъект, который может отозвать разрешение.

Возвращается: всегда

Пример: "arn:aws:sts::123456789012:assumed-role/lambda_xyz/xyz"

had_invalid_entries

boolean

Есть ли в записи KMS недопустимые записи (не ARN). Они не считаются изменением, но будут удалены, если вносятся какие-либо изменения.

Возвращается: всегда

key_arn

string

ARN ключа.

Возвращается: всегда

Пример: "arn:aws:kms:ap-southeast-2:123456789012:key/abcd1234-abcd-1234-5678-ef1234567890"

key_id

string

ID ключа.

Возвращается: всегда

Пример: "abcd1234-abcd-1234-5678-ef1234567890"

key_manager

string

Менеджер ключа KMS.

Возвращается: всегда

Пример: "AWS"

key_policies

list / elements=dictionary

добавлено в community.aws 3.3.0

Список документов политик для ключа. Пуст, если доступ запрещен, даже при наличии политик.

Возвращается: всегда

Пример: {"Id": "auto-ebs-2", "Statement": [{"Action": ["kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey"], "Condition": {"StringEquals": {"kms:CallerAccount": "123456789012", "kms:ViaService": "ec2.ap-southeast-2.amazonaws.com"}}, "Effect": "Allow", "Principal": {"AWS": "*"}, "Resource": "*", "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS"}, {"Action": ["kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant"], "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:root"}, "Resource": "*", "Sid": "Allow direct access to key metadata to the account"}], "Version": "2012-10-17"}

key_spec

string

Указывает тип создаваемого ключа KMS.

Возвращается: всегда

Пример: "SYMMETRIC_DEFAULT"

key_state

string

Состояние ключа.

Возможные значения: 'Creating', 'Enabled', 'Disabled', 'PendingDeletion', 'PendingImport', 'PendingReplicaDeletion', 'Unavailable' или 'Updating'.

Возвращается: всегда

Пример: "PendingDeletion"

key_usage

string

Криптографические операции, для которых можно использовать ключ.

Возвращается: всегда

Пример: "ENCRYPT_DECRYPT"

multi_region

boolean

добавлено в amazon.aws 5.5.0

Указывает, является ли CMK многорегиональным True или региональным False ключом.

Это значение равно True для многорегиональных основных CMK и реплик и False для региональных CMK.

Возвращается: всегда

Пример: false

origin

string

Источник ключевого материала ключа. Если это значение равно AWS_KMS, ключевой материал создан AWS KMS. Если это значение равно EXTERNAL, ключевой материал был импортирован или в CMK отсутствует ключевой материал.

Возвращается: всегда

Пример: "AWS_KMS"

tags

dictionary

Словарь тегов, назначенных ключу. Пуст, если доступ запрещен, даже при наличии тегов.

Возвращается: всегда

Пример: {"Name": "myKey", "Purpose": "protecting_stuff"}

Авторы

  • Ted Timmons (@tedder)
  • Will Thames (@willthames)
  • Mark Chappell (@tremble)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/kms_key_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API