def METHOD_NAME(self):
    # First try it with _lookup_config.  It's possible
    # that we don't find credentials this way (for example,
    # if we're using an IAM role).
    access_key = self._lookup_config('access_key')
    if access_key.value is not NOT_SET:
        secret_key = self._lookup_config('secret_key')
        access_key.mask_value()
        secret_key.mask_value()
        return access_key, secret_key
    else:
        # Otherwise we can try to use get_credentials().
        # This includes a few more lookup locations
        # (IAM roles, some of the legacy configs, etc.)
        credentials = self._session.get_credentials()
        if credentials is None:
            no_config = ConfigValue(NOT_SET, None, None)
            return no_config, no_config
        else:
            # For the ConfigValue, we don't track down the
            # config_variable because that info is not
            # visible from botocore.credentials.  I think
            # the credentials.method is sufficient to show
            # where the credentials are coming from.
            access_key = ConfigValue(credentials.access_key,
                                     credentials.method, '')
            secret_key = ConfigValue(credentials.secret_key,
                                     credentials.method, '')
            access_key.mask_value()
            secret_key.mask_value()
            return access_key, secret_key