Introduction I am writing ASP.NET Core code for an automated cloud directory synchronization process that will run on Google Cloud Run and Kubernetes. This code requires the current date and time in the local time zone. Simple problem, or so… Continue Reading →
Introduction One of the things that I love about the cloud, is that you can deploy servers in minutes. What previously took weeks of time, purchase orders, etc. is now a few clicks of the mouse. One of my action… Continue Reading →
Introduction A common practice in Google Cloud is to create one or more service accounts to authorize the Google Cloud CLI. Using service accounts is recommended by Google instead of user accounts. However, a service account JSON or P12 file… Continue Reading →
Introduction I use SSL certificates for everything. I am constantly creating them for internal systems and cloud services. This includes services such as web servers, SQL servers, anything where you might use a paid SSL certificate, or a self-signed certificate… Continue Reading →
This training videolab is a collection of videos Google Cloud created by Jennifer Brown @jbrojbrojbro. Jennifer is a Google Cloud Developer Advocate and a Google employee. Her videos are very good and average about 3 minutes each. This lab combines… Continue Reading →
Introduction This training videolab is a collection of videos Google Cloud created by Priyanka Vergadia @pvergadia. Priyanka is a Google Cloud Architect and a Google employee. Her videos are very good and average about 5 minutes each. This lab combines her… Continue Reading →
Introduction Designing an application that incorporates Google Cloud SQL requires some thought. There are several factors to consider regarding security, performance, fault tolerance and availability. Incorrectly implementing one of these areas can affect the other areas, usually negatively. In this… Continue Reading →
Introduction I watch a lot of training material from all the major education vendors (Pluralsight, Linux Academy, Cloud Academy, A Cloud Guru, and many others). For a long time, I have been wanting to add professional scriptwriting, professional graphics and… Continue Reading →
Introduction I watch a lot of training material from all the major education vendors (Pluralsight, Linux Academy, Cloud Academy, A Cloud Guru, and many others). For a long time, I have been wanting to add professional scriptwriting, professional graphics and… Continue Reading →
Introduction Google Cloud SQL Proxy provides secure access to Cloud SQL Second Generation instances without having to whitelist IP addresses or configure SSL. Cloud SQL Proxy provides several important benefits: Secure connections: The proxy automatically encrypts traffic to and from the database using TLS… Continue Reading →
Introduction This article discusses mapping custom domains for Google Cloud Run Managed. In a future article, I will cover Google Cloud Run on GKE. Google Cloud Run supports using a custom domain rather than the default address provided for a… Continue Reading →
Introduction To understand Google Cloud Run, you must peel back the layers and look at the interfaces that the API offers. Understanding the API will provide you with a better understanding of the features and capabilities. If your goal is… Continue Reading →
Introduction Google Cloud Platform is a suite of cloud computing services. Google has everything from storage, compute, database, big data to AI and everything in between. I am often asked how do I get started with Google Cloud. In this… Continue Reading →
Introduction This article discusses Google Cloud Run cold starts, what they are and how to avoid cold starts. What is Cold Start? Cloud Run is a stateless HTTP serverless container service that provides on-demand services that autoscales to zero instances…. Continue Reading →
Introduction This article is about how to upload files to Compute Engine fronted by a Google HTTP Load Balancer and how to diagnose and correct file upload timeouts. The result is a better understanding of how to configure the Google… Continue Reading →
Google Cloud Shell CLI Written in Go This is a placeholder until I write this article. I have published the source code on GitHub. Note: This program is written for Windows. I have not yet ported it to Linux or… Continue Reading →
Table of Contents Introduction Definitions Example Private & Public Keys OpenSSH Public Keys SSH-2 Public Keys Examining OpenSSH Public Keys Introduction There is a lot of confusion and inaccurate information on the Internet about Key Pairs and Private/Public keys. This… Continue Reading →
Introduction This article shows how to serve files with Google Cloud Run. There are a few reasons to use Cloud Run instead of Google Cloud Storage. To learn how to deploy a simple file sharing service using Cloud Run. To… Continue Reading →
Introduction This article will discuss several key features if you are programming for Google Cloud Platform. Key features of this article: Using a service account that has no permissions to read a non-public Cloud Storage object. How to use the… Continue Reading →
Part 1: Introduction Today I decided to learn Go in the next 30 days and document every step of my journey. How well will I know Go in 30 days? That is a difficult question and by logging the steps,… Continue Reading →
Introduction This article describes a missing item from the articles and documentation on Google Cloud Asset Inventory. The item is the header X-Goog-User-Project. I am writing this article to show how I figured this out, so you have another method… Continue Reading →
Introduction Sometimes your Google Cloud Run app needs to communicate with or consume other services. This can be a simple as reading an object in Cloud Storage, sending an email, or connecting to a database. What identity does Cloud Run use?… Continue Reading →
Introduction Google Cloud Run charges you for the resources you use when you use them. No long running compute instances, just on-demand services. There are several components to Cloud Run services. In this article, we will look at each one…. Continue Reading →
Google Experts Program Google has honored me with Google Developers Experts Cloud Platform. I am the twentieth expert in North America. This is a global program to recognize individuals who are experts and thought leaders in one or more Google… Continue Reading →
Starting today, I am copying all of my source code for the articles on this website to GitHub. This will take a week to complete. Today’s article on Cloud Run now has a GitHub repository to make downloads and builds… Continue Reading →
Introduction This article discusses HTTP to HTTPS redirection in software. I will show you one method of server-side redirects in Python 3 and Flask. I will start by analyzing the HTTP headers received by a Cloud Run container application and… Continue Reading →
Introduction This article discusses HTTP to HTTPS redirection as implemented by Google Cloud Run. Today, all websites should deliver traffic over HTTPS. Google Cloud has adopted this policy providing HTTPS for Cloud Run service URLs with automatic redirects from HTTP to… Continue Reading →
Introduction My personal website which covers articles about Google Cloud has been growing both in traffic and content. After I wrote my article Google Professional Cloud Security Engineer Certification, my website lit up with traffic and has continued to grow…. Continue Reading →
Introduction This article covers how to add IPv6 to a load balancer on Google Cloud and create the correct DNS resource records. Google Compute Engine does not support IPv6, so this requires that a Google HTTP Load Balancer (and… Continue Reading →
Introduction On August 15, 2018, Google released the Alpha release of Google Cloud Run. Many of us saw the potential and went to work learning this new platform. Everything serverless gets our attention. Cloud Run is Google’s entry into serverless… Continue Reading →
Introduction Date created: May 7, 2019 Last updated: May 7, 2019 Today I received an email titled “jhanley@jhanley.com has been hacked, change your password ASAP”. The hacker claims to know my login and password, has full control over my account… Continue Reading →
Date created: May 4, 2019 Last updated: May 5, 2019 Gmail stats graphic courtesy Google Security Blog Introduction One of the major problems with email is email spam. Spammers impersonate your identity to send emails that appear to be sent… Continue Reading →
Date created: May 2, 2019 Last updated: May 4, 2019 Introduction For the articles on this site, I often create subdomains for testing. This is neither safe nor secure and a mistake could take down my entire domain. Therefore, I… Continue Reading →
I think that Google has done a nice job creating certification badges. Certify with Google Cloud and G Suite and get your own badges. Google Cloud Certified
Date created: April 17, 2019 Last updated: April 19, 2019 Introduction Redis (REmote DIctionary Server) is one of the most popular databases in the world. Redis is a Key Value dictionary. Google Cloud Memorystore is Google’s managed service for Redis…. Continue Reading →
Date created: January 30, 2019 Last updated: May 5, 2019 Exam Completed: February 15, 2019 Part 1: Introduction Part 2: Post Exam Review Part 3: Daily Study Part 4: Tips and Advice Part 5: Final Exam Update March 29, 2019…. Continue Reading →
In my earlier article on how to test Google OAuth 2.0 flows from the command line I showed how to generate Google OAuth 2.0 Access Token, Refresh Token, and ID Token. In this article, I will show how to refresh… Continue Reading →
If you have ever wanted to test Google OAuth 2.0 flows from the command line, you will like this short article. This article is the second version. I wrote a previous article on using curl, but that version did not… Continue Reading →
This article shows how to display a list of Google Cloud Projects that you have access to list. This article includes two examples in Python that use two different Google Cloud Python libraries. These examples produce the same output as the… Continue Reading →
The following example shows several important steps to call Google Cloud APIs without using an SDK in Python. Similar code works in just about any language (c#, java, php, nodejs). Change the source code with the filename of your service… Continue Reading →
I have written a number of articles about Google Cloud Credentials. For Service Account credentials, there are two on-disk formats: P12 and Json. This article shows how to convert these credentials from P12 to Json.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
############################################################ # Version 1.00 # Date Created: 2018-12-22 # Last Update: 2018-12-22 # https://www.jhanley.com # Copyright (c) 2018, John J. Hanley # Author: John Hanley ############################################################ ''' This program converts Google Service Account credentials from P12 format into Json format. The critical items to know: Service Account Email address that matches the service account credentials. If this is wrong, the credentials won't work (P12 or Json). Project ID. P12 Password. ''' import json import OpenSSL.crypto # This is the output file with the generated service account credentials from P12 credentials json_filename = 'service-account.json' # Details on the Google Service Account. The email must match the Google Console. project_id = 'development-123456' sa_filename = 'compute-engine.p12' sa_password = 'notasecret' sa_email = 'development-123456@developer.gserviceaccount.com' # client_id is the 'Unique ID' in the Google Console under 'Service account details' # This value is unique per service account email # Optional client_id = '123456789064738430393' # pkey_id is the 'Key ID' in the Google Console under 'Service account details' # This value is unique per key. One serice account can have more than one key issued # Optional pkey_id = 'e13865c612a34567abcdef1a8753d1c6789abcdb' def load_private_key(p12_path, p12_password): ''' Read the private key and return as base64 encoded ''' # print('Opening:', p12_path) with open(p12_path, 'rb') as f: data = f.read() # print('Loading P12 (PFX) contents:') p12 = OpenSSL.crypto.load_pkcs12(data, p12_password) # Dump the Private Key in PKCS#1 PEM format key = OpenSSL.crypto.dump_privatekey( OpenSSL.crypto.FILETYPE_PEM, p12.get_privatekey()) # return the private key return key def my_encode(s): ''' This routine encodes the Json 'client_x509_cert_url' ''' # Replace @ with %40 return s.replace('@', '%40') # Generate the cert_url cert_url = 'https://www.googleapis.com/robot/v1/metadata/x509/' + sa_email # Load the private key from P12 pkey = load_private_key(sa_filename, sa_password) # Json that will be writting to json_filename sa = { "type": "service_account", "project_id": project_id, "private_key_id": pkey_id, "private_key": pkey.decode('utf-8'), "client_email": sa_email, "client_id": client_id, "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": my_encode(cert_url) } with open(json_filename, 'w') as outfile: json.dump(sa, outfile, indent=2) |
Google Service Account Credentials are available in two file formats: Json and P12. P12 is also known as PFX. The following code shows how to process a P12 file and split into Private Key and Certificate. This code also works… Continue Reading →
Google Service Account Credentials are available in two file formats: Json and P12. P12 is also known as PFX. The following code shows how to use P12 credentials to list the buckets in Google Cloud Storage without using an SDK…. Continue Reading →
I have worked with Google Cloud Stackdriver for about three months. The more I learn about Stackdriver the more I like it. Great product for logging, monitoring, error reporting, application tracing and application debugging and more. One of the items… Continue Reading →
Introduction If you have ever wanted to test Google OAuth 2.0 flows from the command-line, you will like this short article. [Update: I thought about the problem below with the copy and paste requirement. I created a simple python web… Continue Reading →
This article is written for Windows, but the same principles apply to Linux and Mac. A service account is a special Google account that is used with applications or services, such as, Google Compute Engine. Service account credentials are stored… Continue Reading →
Google Cloud stores your credentials in a database on your system. These credentials can then be used over and over. Google’s choice of a database means that the CLI and SDK tools can manage a huge number of credentials efficiently…. Continue Reading →
In this article we will download and install the Google gcloud CLI. Then we will setup gcloud with Google Service Account credentials. This article is for Windows based system but the same principles apply to Linux and Mac systems. Step… Continue Reading →
This article is written for Windows, but the same principles apply to Linux and Mac. I need to work with multiple Google Cloud accounts and be able to easily switch my credentials between accounts. For those of you with AWS… Continue Reading →
On October 23, 2018, Google introduced private DNS zones for Google Cloud DNS. This is an important announcement as this keeps internal DNS names private. Today’s article covers how to implement this new feature in Google Cloud Platform. Update: May… Continue Reading →
© 2021 John Hanley — Powered by WordPress
Theme by Anders Noren — Up ↑