not sure if that needs new topic but I see that other AWS modules also fail 
to pickup variables in Environment as they should .

Example is rds_instance_facts 

again, I set up the sts credentials in environment block, and then the 
module doesn't use them ,why is that ? 


Saisissez le code ici...  
# playbook.yml

    pre_tasks: 
    - name: Assume teardown devel stack role
      sts_assume_role:
        role_arn: "arn:aws:iam:::role/role"
        role_session_name: "session"
        region: "{{ region }}"
      register: assumed_role
      # no_log: false

    - name: import roles 
      block:
      - import_role:
          name: test2
        when: cf_region is defined
      environment:
        aws_access_key: "{{ assumed_role.sts_creds.access_key }}"
        aws_secret_key: "{{ assumed_role.sts_creds.secret_key }}"
        security_token: "{{ assumed_role.sts_creds.session_token }}

# test2.yml
- name: Get rds facts
    rds_instance_facts:
      # command: facts
      db_instance_identifier: "{{ cf_stack_name }}"
      region: "{{ cf_region }}"
    register: rds

in the exec I see the temporary keys: 

 EXEC /bin/sh -c 'aws_secret_key=cHAyHECUKdRXeMNELOADIjPKRwdYfJR/BIY8nVMZ 
aws_access_key=ASIA3K27TU7xxxxxxxxxxxx
security_token=FwoGZXIvYXdzEOv//////////wEaDBTRsHoNaa4W+L0bkiK+ASTwafNPh9h+q2E6IqgZAR/MjX4eDpo/Vh2zLfFX+D/XHH/B1fCcLUaGp+6AXc0H/wqJG58dt9SQP5Dym1iLq3Xzn3rVwmEc9U+0Q3PcdbczO4qwJS/A2mr1lnZ03HV+PsT0lFbActJJ65VHcNvVCqy4sSvRd+ykeBgkkiM6L35icm8eTr5RJdnTMb2tmcHogNXteaXbaag1AjABC/114coEMspTOCPjexiPtic3io67lQvIJPK9L3gqKsMMn4Ioq7js+AUyLer/WPTStS/PBgsU8WsLrlxd/iuaU4qGgquy4+6vY5H/X7vEaSMyT/8OKo6MVg==
 


but the module doesn't care and bail  with :
ClientError: An error occurred (AccessDenied) when calling the 
DescribeDBInstances operation: User: arn:aws:iam:::user/myuser is not 
authorized to perform: rds:DescribeDBInstances on resource


I am losing hope in ansible :( 
What is the point of having a global environment if each and single AWS 
module requires a set of local credentials ? 
please help me understand the logic here, 
cheers


Le lundi 10 avril 2017 00:40:30 UTC-7, Rob White a écrit :
>
> Hi all,
>
> I'm looking for any suggestions on how to work around the following issue:
>
> I am trying to use a lookup plugin but it is ignoring my environment 
> variables.
>
> The lookup plugin I am trying to use is credstash and the environment 
> variables are being set because I am using AWS STS to assume a role.
>
> It looks a little like this:
>
> ---
> - name: Get STS token
>   hosts: "{{ hosts }}"
>   connection: local
>   tasks:
>     - name: Assume role for passed account
>       sts_assume_role:
>         region: "{{ aws_region }}"
>         role_arn: "arn:aws:iam::{{ aws_account_id }}:role/ansible-is_assumed"
>         role_session_name: ansible_assumed_role
>       register: assumed_role
>       when: use_sts
>
>     - name: Set environment with AWS creds when available
>       set_fact:
>         my_environment:
>           AWS_ACCESS_KEY_ID: "{{ assumed_role.sts_creds.access_key }}"
>           AWS_SECRET_ACCESS_KEY: "{{ assumed_role.sts_creds.secret_key }}"
>           AWS_SECURITY_TOKEN: "{{ assumed_role.sts_creds.session_token }}"
>       when: assumed_role.skipped is not defined
>
>     - name: Set environment blank when no AWS creds
>       set_fact:
>         my_environment: {}
>       when: assumed_role.skipped is defined
>
> - name: Deploy infrastructure role
>   hosts: "{{ hosts }}"
>   connection: local
>   roles:
>     - "{{ role_to_deploy }}"
>   environment: "{{ my_environment }}"
>
>
>
> Now in the role_to_deploy i have lots of tasks that work brilliantly 
> calling out to AWS using the STS credentials supplied as intended.
>
> Unfortunately, any lookup plugins do not work properly because they do not 
> use the environment variables I have set.  They end up calling out to AWS 
> using the default credentials rather than being overridden by the STS creds.
>
> I don't think this is a bug but it is never the less annoying.
>
> I'm hoping maybe one of the core team can think of a way I can get the 
> lookup plugin to 'see' my STS environment variables I have set.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/c38b32ad-0f8a-46c3-aa06-d1e429c0f1cbo%40googlegroups.com.

Reply via email to