Code samples

requests

curl "http://metadata.google.internal/computeMetadata/v1/project/{item_name}" \
-H "Metadata-Flavor: Google"
# refer https://cloud.google.com/compute/docs/storing-retrieving-metadata#api_3
import requests

    endpoint = 'http://metadata.google.internal'
    path = '/computeMetadata/v1/project/'
    path += item_name
    response = requests.get(
        '{}{}'.format(endpoint, path),
        headers={'Metadata-Flavor': 'Google'}
    )
    metadata = response.text
    return metadata

JWT

JWT assertion is used to decode email and persistent Id.

# code taken from https://cloud.google.com/python/docs/getting-started/authenticate-users#app-managed_authentication
from jose import jwt

    try:
        info = jwt.decode(
            assertion,
            certs(),
            algorithms=['ES256'],
            audience=audience()
            )
        return info['email'], info['sub']
    except Exception as e:
        print('Failed to validate assertion: {}'.format(e), file=sys.stderr)
        return None, None

Pattern match

login via terminal

Last updated

Was this helpful?