Create a default credential resolver. This creates a pre-configured credential resolver that includes the default lookup chain for credentials.
(session, cache=None, region_name=None)
| 79 | |
| 80 | |
| 81 | def create_credential_resolver(session, cache=None, region_name=None): |
| 82 | """Create a default credential resolver. |
| 83 | |
| 84 | This creates a pre-configured credential resolver |
| 85 | that includes the default lookup chain for |
| 86 | credentials. |
| 87 | |
| 88 | """ |
| 89 | profile_name = session.get_config_variable('profile') or 'default' |
| 90 | metadata_timeout = session.get_config_variable('metadata_service_timeout') |
| 91 | num_attempts = session.get_config_variable('metadata_service_num_attempts') |
| 92 | disable_env_vars = session.instance_variables().get('profile') is not None |
| 93 | |
| 94 | imds_config = { |
| 95 | 'ec2_metadata_service_endpoint': session.get_config_variable( |
| 96 | 'ec2_metadata_service_endpoint' |
| 97 | ), |
| 98 | 'ec2_metadata_service_endpoint_mode': resolve_imds_endpoint_mode( |
| 99 | session |
| 100 | ), |
| 101 | 'ec2_credential_refresh_window': _DEFAULT_ADVISORY_REFRESH_TIMEOUT, |
| 102 | 'ec2_metadata_v1_disabled': session.get_config_variable( |
| 103 | 'ec2_metadata_v1_disabled' |
| 104 | ), |
| 105 | } |
| 106 | |
| 107 | if cache is None: |
| 108 | cache = {} |
| 109 | |
| 110 | env_provider = EnvProvider() |
| 111 | container_provider = ContainerProvider() |
| 112 | instance_metadata_provider = InstanceMetadataProvider( |
| 113 | iam_role_fetcher=InstanceMetadataFetcher( |
| 114 | timeout=metadata_timeout, |
| 115 | num_attempts=num_attempts, |
| 116 | user_agent=session.user_agent(truncate=True), |
| 117 | config=imds_config, |
| 118 | ) |
| 119 | ) |
| 120 | |
| 121 | profile_provider_builder = ProfileProviderBuilder( |
| 122 | session, cache=cache, region_name=region_name |
| 123 | ) |
| 124 | assume_role_provider = AssumeRoleProvider( |
| 125 | load_config=lambda: session.full_config, |
| 126 | client_creator=_get_client_creator(session, region_name), |
| 127 | cache=cache, |
| 128 | profile_name=profile_name, |
| 129 | credential_sourcer=CanonicalNameCredentialSourcer( |
| 130 | [env_provider, container_provider, instance_metadata_provider] |
| 131 | ), |
| 132 | profile_provider_builder=profile_provider_builder, |
| 133 | ) |
| 134 | |
| 135 | pre_profile = [ |
| 136 | env_provider, |
| 137 | assume_role_provider, |
| 138 | ] |