IAM Role
Sinopse
- Gerencie funções do AWS IAM.
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
assume_role_policy_document | json | | O documento de política de relacionamento de confiança que concede a uma entidade permissão para assumir a função. Este parâmetro é necessário quando state=present . |
aws_access_key aliases: ec2_access_key, access_key | string | | AWS access key. Se não for definido, o valor da variável AWS_ACCESS_KEY_ID de ambiente AWS_ACCESS_KEY ou EC2_ACCESS_KEY será usado. Se o profile for definido, este parâmetro será ignorado. |
aws_ca_bundle | path | | A localização de um CA Bundle a ser usado ao validar certificados SSL. Não usado por módulos baseados em boto 2. |
aws_config | dictionary | | Um dicionário para modificar a configuração do botocore. Os parâmetros podem ser encontrados em https://botocore.amazonaws.com. Apenas a chave 'user_agent' é usada para módulos boto. Consulte http://boto.cloudhackers.com para obter mais configurações de boto. |
aws_secret_key aliases: ec2_secret_key, secret_key | string | | AWS secret key. Se não for definido, o valor da variável de ambiente AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY ou EC2_SECRET_KEY será usado. Se o profile for definido, este parâmetro será ignorado. |
boundary aliases: limite_policy_arn | string | | O ARN de uma política gerenciada do IAM a ser usada para restringir as permissões que essa função pode transmitir às funções/usuários do IAM que ela cria. Os limites não podem ser definidos em perfis de instância, portanto, se essa opção for especificada, create_instance_profile deverá ser false. Destina-se a funções/usuários que têm permissões para criar novos objetos do IAM. Para obter mais informações sobre limites, consulte https://docs.aws.amazon.com. |
create_instance_profile | boolean | Escolhas:
| Cria um perfil de instância do IAM junto com a função. |
debug_botocore_endpoint_logs | boolean | Escolhas:
| Use um registrador botocore.endpoint para analisar as chamadas de API exclusivas (em vez do total) “resource:action” feitas durante uma tarefa, enviando o conjunto para a chave resource_actions nos resultados da tarefa. Use o retorno de chamada aws_resource_action para gerar a lista total feita durante um playbook. A variável de ambiente ANSIBLE_DEBUG_BOTOCORE_LOGS também pode ser usada. |
delete_instance_profile | boolean | Escolhas:
| Quando delete_instance_profile=true e state=absent , a exclusão de uma função também excluirá o perfil de instância criado com o mesmo nome da função. Aplica-se apenas quando state=absent . |
description | string | | Fornece uma descrição da função. |
ec2_url aliases: aws_endpoint_url, endpoint_url | string | | URL a ser usada para conectar-se ao EC2 ou à sua nuvem Eucalyptus (por padrão, o módulo usará endpoints do EC2). Ignorado para módulos onde a região é necessária. Deve ser especificado para todos os outros módulos se a região não for usada. Se não for definido, o valor da variável de ambiente EC2_URL, se houver, será usado. |
políticas_gerenciadas aliases: managed_policy | list/elements=string | | Uma lista de ARNs de política gerenciada, ARNs de política gerenciada ou nomes amigáveis. Para remover todas as políticas, defina purge_polices=true e managed_policies=[None] . |
max_session_duration | integer | | A duração máxima (em segundos) de uma sessão ao assumir a função. Os valores válidos estão entre 1 e 12 horas (3600 e 43200 segundos). |
name - required | string | | O nome da função a ser criada. |
path | string | default: “/” | O caminho para o papel. Para obter mais informações sobre caminhos, consulte https://docs.aws.amazon.com. |
profile aliases: aws_profile | sring | | O uso do profile substituirá aws_access_key, aws_secret_key e security_token e o suporte para passá-los ao mesmo tempo em que o profile foi descontinuado. |
purge_policies aliases: purge_policy, purge_managed_policies | boolean | Escolhas:
| Quando purge_policies=true , quaisquer políticas gerenciadas não listadas em managed_policies serão desanexadas. Por padrão purge_policies=true. |
purge_tags boleano | boolean | Escolhas:
| Remova as tags não listadas nas tags quando as tags forem especificadas. |
region aliases: aws_region, ec2_region | string | | A região da AWS a ser usada. Se não for especificado, o valor da variável de ambiente AWS_REGION ou EC2_REGION, se houver, será usado. Consule http://docs.aws.amazon.com |
security_token aliases: aws_security_token, access_token | string | | AWS STS security token. Se não for definido, o valor da variável de ambiente AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN será usado. Se o perfil for definido, este parâmetro será ignorado. |
state | string | Escolhas:
| Crie ou remova a função do IAM. |
tags | dictionary | | Marque dict para aplicar à fila. |
valid_certs | boolean | Escolhas:
| Quando definido como “não”, os certificados SSL não serão validados para comunicação com as APIs da AWS. |
wait | boolean | Escolhas:
| Quando wait=True , o módulo aguardará até wait_timeout segundos pela criação da função do IAM antes de retornar. |
wait_timeout | integer | Default: 120 | Quanto tempo (em segundos) aguardar a conclusão da criação/atualização. |
Notas
- Se os parâmetros não forem definidos no módulo, as seguintes variáveis de ambiente podem ser usadas em ordem decrescente de precedência:
- AWS_URL ou EC2_URL,
- AWS_PROFILE ou AWS_DEFAULT_PROFILE,
- AWS_ACCESS_KEY_ID ou AWS_ACCESS_KEY ou EC2_ACCESS_KEY,
- AWS_SECRET_ACCESS_KEY ou AWS_SECRET_KEY ou EC2_SECRET_KEY,
- AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN,
- AWS_REGION ou EC2_REGION,
- AWS_CA_BUNDLE
- Quando nenhuma credencial é fornecida explicitamente, o AWS SDK (boto3) que o Ansible usa retornará aos seus arquivos de configuração (normalmente ~/.aws/credentials). Consulte https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html para obter mais informações.
- Módulos baseados no AWS SDK original (boto) podem ler sua configuração padrão de arquivos diferentes. Consulte https://boto.readthedocs.io/en/latest/boto_config_tut.html para obter mais informações.
- AWS_REGION ou EC2_REGION pode ser normalmente usado para especificar a região da AWS, quando necessário, mas isso também pode ser definido nos arquivos de configuração.
Exemplos
# Observação: esses exemplos não definem detalhes de autenticação, consulte o AWS Guide para obter detalhes.
- name: Criar uma função com descrição e tags
iam_role:
name: mynewrole
assume_role_policy_document: "{{ lookup('file','policy.json') }}"
description: This is My New Role
tags:
env: dev
- name: "Crie uma função e anexe uma política gerenciada chamada 'PowerUserAccess'"
iam_role:
name: mynewrole
assume_role_policy_document: "{{ lookup('file','policy.json') }}"
managed_policies:
- arn:aws:iam::aws:policy/PowerUserAccess
- name: Mantenha a função criada acima, mas remova todas as políticas gerenciadas
iam_role:
name: mynewrole
assume_role_policy_document: "{{ lookup('file','policy.json') }}"
managed_policies: []
- name: Excluir a função
iam_role:
name: mynewrole
assume_role_policy_document: "{{ lookup('file', 'policy.json') }}"
state: absent
Valores de retorno
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
iam_role | complex | sucesso | dicionário que contém os dados da função do IAM. |
arn | string | sempre | o nome de recurso da Amazon (ARN) especificando a função. |
assume_role_policy_document | string | sempre | a política que concede a uma entidade permissão para assumir a função. |
attach_policies | list / elements=string | sempre | uma lista de dicts contendo o nome e o ARN das políticas gerenciadas do IAM anexadas à função. |
create_date | string | sempre | a data e hora, no formato de data e hora ISO 8601, quando a função foi criada. |
caminho | string | sempre | o caminho para o papel. |
role_id | string | sempre | a string estável e exclusiva que identifica a função. |
role_name | string | sempre | o nome amigável que identifica a função. |
tags | dictionary | sempre | etiquetas de função. |