Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aws_ssm.Connection._get_boto_client lose access_key, token when using aws profile #2088

Open
1 task done
dlscjf151 opened this issue May 14, 2024 · 0 comments · May be fixed by #2089
Open
1 task done

aws_ssm.Connection._get_boto_client lose access_key, token when using aws profile #2088

dlscjf151 opened this issue May 14, 2024 · 0 comments · May be fixed by #2089

Comments

@dlscjf151
Copy link

Summary

I'm using ansible with aws ssm connection. I authenticated with aws credential profile, but encountered error on s3 client initializing


....

    File "/.venv/lib/python3.11/site-packages/botocore/signers.py", line 199, in sign
    auth.add_auth(request)
  File "/.venv/lib/python3.11/site-packages/botocore/auth.py", line 437, in add_auth
    self._inject_signature_to_request(request, signature)
  File "/.venv/lib/python3.11/site-packages/botocore/auth.py", line 440, in _inject_signature_to_request
    auth_str = ['AWS4-HMAC-SHA256 Credential=%s' % self.scope(request)]
                                                   ^^^^^^^^^^^^^^^^^^^
  File "/.venv/lib/python3.11/site-packages/botocore/auth.py", line 388, in scope
    print('/'.join(scope))
          ^^^^^^^^^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
fatal: [*************]: FAILED! => {
    "msg": "Unexpected failure during module execution: sequence item 0: expected str instance, NoneType found",
    "stdout": ""
}

I printed debug log at fail point, access_key and token was None

ReadOnlyCredentials(access_key=None, secret_key='******************', token=None)

Because of this, scope becomes [None, '20240514', 'ap-northeast-2', 's3', 'aws4_request'] and raise error doing join None type

Issue Type

Bug Report

Component Name

ansible_collections.community.aws.plugins.connection.aws_ssm.Connection._get_boto_client

Ansible Version

$ ansible --version
ansible [core 2.16.6]
  config file = /ansible.cfg
  configured module search path = ['/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = .venv/lib/python3.11/site-packages/ansible
  ansible collection location = /.ansible/collections:/usr/share/ansible/collections
  executable location = /.venv/bin/ansible
  python version = 3.11.8 (v3.11.8:db85d51d3e, Feb  6 2024, 18:02:37) [Clang 13.0.0 (clang-1300.0.29.30)] (/.venv/bin/python3.11)
  jinja version = 3.1.4
  libyaml = True

Collection Versions

$ ansible-galaxy collection list
Collection                               Version
---------------------------------------- -------
amazon.aws                               7.5.0  
ansible.netcommon                        5.3.0  
ansible.posix                            1.5.4  
ansible.utils                            2.12.0 
ansible.windows                          2.3.0  
arista.eos                               6.2.2  
awx.awx                                  23.9.0 
azure.azcollection                       1.19.0 
check_point.mgmt                         5.2.3  
chocolatey.chocolatey                    1.5.1  
cisco.aci                                2.9.0  
cisco.asa                                4.0.3  
cisco.dnac                               6.13.3 
cisco.intersight                         2.0.8  
cisco.ios                                5.3.0  
cisco.iosxr                              6.1.1  
cisco.ise                                2.8.1  
cisco.meraki                             2.18.0 
cisco.mso                                2.6.0  
cisco.nxos                               5.3.0  
cisco.ucs                                1.10.0 
cloud.common                             2.1.4  
cloudscale_ch.cloud                      2.3.1  
community.aws                            7.2.0  
community.azure                          2.0.0  
community.ciscosmb                       1.0.7  
community.crypto                         2.19.0 
community.digitalocean                   1.26.0 
community.dns                            2.9.0  
community.docker                         3.9.0  
community.general                        8.6.0  
community.grafana                        1.8.0  
community.hashi_vault                    6.2.0  
community.hrobot                         1.9.2  
community.library_inventory_filtering_v1 1.0.1  
community.libvirt                        1.3.0  
community.mongodb                        1.7.3  
community.mysql                          3.9.0  
community.network                        5.0.2  
community.okd                            2.3.0  
community.postgresql                     3.4.0  
community.proxysql                       1.5.1  
community.rabbitmq                       1.3.0  
community.routeros                       2.15.0 
community.sap                            2.0.0  
community.sap_libs                       1.4.2  
community.sops                           1.6.7  
community.vmware                         4.3.0  
community.windows                        2.2.0  
community.zabbix                         2.3.1  
containers.podman                        1.13.0 
cyberark.conjur                          1.2.2  
cyberark.pas                             1.0.25 
dellemc.enterprise_sonic                 2.4.0  
dellemc.openmanage                       8.7.0  
dellemc.powerflex                        2.3.0  
dellemc.unity                            1.7.1  
f5networks.f5_modules                    1.28.0 
fortinet.fortimanager                    2.4.0  
fortinet.fortios                         2.3.6  
frr.frr                                  2.0.2  
gluster.gluster                          1.0.2  
google.cloud                             1.3.0  
grafana.grafana                          2.2.5  
hetzner.hcloud                           2.5.0  
hpe.nimble                               1.1.4  
ibm.qradar                               2.1.0  
ibm.spectrum_virtualize                  2.0.0  
ibm.storage_virtualize                   2.3.1  
infinidat.infinibox                      1.4.5  
infoblox.nios_modules                    1.6.1  
inspur.ispim                             2.2.0  
inspur.sm                                2.3.0  
junipernetworks.junos                    5.3.1  
kubernetes.core                          2.4.2  
lowlydba.sqlserver                       2.3.2  
microsoft.ad                             1.5.0  
netapp.aws                               21.7.1 
netapp.azure                             21.10.1
netapp.cloudmanager                      21.22.1
netapp.elementsw                         21.7.0 
netapp.ontap                             22.11.0
netapp.storagegrid                       21.12.0
netapp.um_info                           21.8.1 
netapp_eseries.santricity                1.4.0  
netbox.netbox                            3.17.0 
ngine_io.cloudstack                      2.3.0  
ngine_io.exoscale                        1.1.0  
openstack.cloud                          2.2.0  
openvswitch.openvswitch                  2.1.1  
ovirt.ovirt                              3.2.0  
purestorage.flasharray                   1.27.0 
purestorage.flashblade                   1.17.0 
purestorage.fusion                       1.6.1  
sensu.sensu_go                           1.14.0 
splunk.es                                2.1.2  
t_systems_mms.icinga_director            2.0.1  
telekom_mms.icinga_director              1.35.0 
theforeman.foreman                       3.15.0 
vmware.vmware_rest                       2.3.1  
vultr.cloud                              1.12.1 
vyos.vyos                                4.1.0  
wti.remote                               1.0.5  

AWS SDK versions

$ pip show boto boto3 botocore
WARNING: Package(s) not found: boto
Name: boto3
Version: 1.34.104
Summary: The AWS SDK for Python
Home-page: https://github.com/boto/boto3
Author: Amazon Web Services
Author-email: 
License: Apache License 2.0
Location: /.venv/lib/python3.11/site-packages
Requires: botocore, jmespath, s3transfer
Required-by: 
---
Name: botocore
Version: 1.34.104
Summary: Low-level, data-driven core of boto 3.
Home-page: https://github.com/boto/botocore
Author: Amazon Web Services
Author-email: 
License: Apache License 2.0
Location: /.venv/lib/python3.11/site-packages
Requires: jmespath, python-dateutil, urllib3
Required-by: boto3, s3transfer

Configuration

$ ansible-config dump --only-changed
CONFIG_FILE() = /ansible.cfg
PAGER(env: PAGER) = less

OS / Environment

M1 Mac

Steps to Reproduce

playbook.yml
---
- name: 'Main Playbook'
  hosts: 'aws_ec2'
  gather_facts: true
  roles:
    - role: 'check_disk_storage'

vars.yml
---
ansible_python_interpreter: '/usr/bin/python3'
ansible_connection: 'aws_ssm'
ansible_aws_ssm_bucket_name: '********'

Expected Results

successfully connect to s3 and ec2 instance

Actual Results

....

    File "/.venv/lib/python3.11/site-packages/botocore/signers.py", line 199, in sign
    auth.add_auth(request)
  File "/.venv/lib/python3.11/site-packages/botocore/auth.py", line 437, in add_auth
    self._inject_signature_to_request(request, signature)
  File "/.venv/lib/python3.11/site-packages/botocore/auth.py", line 440, in _inject_signature_to_request
    auth_str = ['AWS4-HMAC-SHA256 Credential=%s' % self.scope(request)]
                                                   ^^^^^^^^^^^^^^^^^^^
  File "/.venv/lib/python3.11/site-packages/botocore/auth.py", line 388, in scope
    print('/'.join(scope))
          ^^^^^^^^^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
fatal: [*************]: FAILED! => {
    "msg": "Unexpected failure during module execution: sequence item 0: expected str instance, NoneType found",
    "stdout": ""
}

Code of Conduct

  • I agree to follow the Ansible Code of Conduct
@dlscjf151 dlscjf151 linked a pull request May 14, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant