How to use some advanced features of Google Cloud Security and Privacy APIs, including:
Setting up a secure Cloud Storage bucket
Managing keys and encrypted data using Key Management Service
Viewing Cloud Storage audit logs
Take abridged data from the Enron Corpus, encrypt it, and load it into Cloud Storage.
How to encrypt data and manage encryption keys using Key Management Service (KMS).
Welcome to Cloud Shell! Type "help" to get started.
Your Cloud Platform project in this session is set to qwiklabs-gcp-03-6ca5b3b7ee09.
Use “gcloud config set project [PROJECT_ID]” to change to a different project.
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ gcloud auth list
Credentialed Accounts
ACTIVE: *
ACCOUNT: student-04-140dad0d0d33@qwiklabs.net
To set the active account, run:
$ gcloud config set account `ACCOUNT`
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ gcloud config list project
[core]
project = qwiklabs-gcp-03-6ca5b3b7ee09
Your active configuration is: [cloudshell-29066]
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ BUCKET_NAME="qwiklabs-gcp-03-6ca5b3b7ee09-enron_corpus"
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ echo $BUCKET_NAME
qwiklabs-gcp-03-6ca5b3b7ee09-enron_corpus
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ gsutil mb gs://${BUCKET_NAME}
Creating gs://qwiklabs-gcp-03-6ca5b3b7ee09-enron_corpus/...
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ gsutil cp gs://enron_emails/allen-p/inbox/1. .
Copying gs://enron_emails/allen-p/inbox/1....
/ [1 files][ 1.7 KiB/ 1.7 KiB]
Operation completed over 1 objects/1.7 KiB.
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ tail 1
tail: cannot open '1' for reading: No such file or directory
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ ls
1. README-cloudshell.txt
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ ls -l
total 8
-rw-r--r-- 1 student_04_140dad0d0d33 student_04_140dad0d0d33 1775 Aug 3 19:48 1.
-rw-r--r-- 1 student_04_140dad0d0d33 student_04_140dad0d0d33 913 Aug 3 19:44 README-cloudshell.txt
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ tail 1.
Attached is the Delta position for 1/18, 1/31, 6/20, 7/16, 9/24
<< File: west_delta_pos.xls >>
Let me know if you have any questions.
tudent_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ history
1 gcloud auth list
2 gcloud config list project
3 BUCKET_NAME="qwiklabs-gcp-03-6ca5b3b7ee09-enron_corpus"
4 echo $BUCKET_NAME
5 gsutil mb gs://${BUCKET_NAME}
6 gsutil cp gs://enron_emails/allen-p/inbox/1. .
7 tail 1
8 ls
9 ls -l
10 tail 1.
11 gcloud services enable cloudkms.googleapis.com
12 gcloud services list
13 \
14 KEYRING_NAME=test CRYPTOKEY_NAME=qwiklab
15 gcloud kms keyrings create $KEYRING_NAME --location global
16 gcloud kms keys create $CRYPTOKEY_NAME --location global --keyring $KEYRING_NAME --purpose encryption
17 tail 1.
18 PLAINTEXT=$(cat 1. | base64 -w0)
19 curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" -d "{\"plaintext\":\"$PLAINTEXT\"}" -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json"
20 curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" -d "{\"plaintext\":\"$PLAINTEXT\"}" -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type:application/json" | jq .ciphertext -r > 1.encrypted
21 curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:decrypt" -d "{\"ciphertext\":\"$(cat 1.encrypted)\"}" -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type:application/json" | jq .plaintext -r | base64 -d
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ gcloud services enable cloudkms.googleapis.com
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ gcloud services list
NAME: actions.googleapis.com
TITLE: Actions API
NAME: androiddeviceprovisioning.googleapis.com
TITLE: Android Device Provisioning Partner API
NAME: appengine.googleapis.com
TITLE: App Engine Admin API
NAME: appengineflex.googleapis.com
TITLE: Google App Engine Flexible Environment
NAME: artifactregistry.googleapis.com
TITLE: Artifact Registry API
NAME: autoscaling.googleapis.com
TITLE: Cloud Autoscaling API
NAME: bigquery.googleapis.com
TITLE: BigQuery API
NAME: bigquerydatatransfer.googleapis.com
TITLE: BigQuery Data Transfer API
NAME: bigquerymigration.googleapis.com
TITLE: BigQuery Migration API
NAME: bigquerystorage.googleapis.com
TITLE: BigQuery Storage API
NAME: bigtable.googleapis.com
TITLE: Cloud Bigtable API
NAME: bigtableadmin.googleapis.com
TITLE: Cloud Bigtable Admin API
NAME: bigtabletableadmin.googleapis.com
TITLE: Cloud Bigtable Table Admin API
NAME: calendar-json.googleapis.com
TITLE: Google Calendar API
NAME: chat.googleapis.com
TITLE: Google Chat API
NAME: cloudapis.googleapis.com
TITLE: Google Cloud APIs
NAME: cloudbilling.googleapis.com
TITLE: Cloud Billing API
NAME: cloudbuild.googleapis.com
TITLE: Cloud Build API
NAME: clouderrorreporting.googleapis.com
TITLE: Error Reporting API
NAME: cloudfunctions.googleapis.com
TITLE: Cloud Functions API
NAME: cloudkms.googleapis.com
TITLE: Cloud Key Management Service (KMS) API
NAME: cloudlatencytest.googleapis.com
TITLE: Cloud Network Performance Monitoring API
NAME: cloudresourcemanager.googleapis.com
TITLE: Cloud Resource Manager API
NAME: cloudtasks.googleapis.com
TITLE: Cloud Tasks API
NAME: cloudtrace.googleapis.com
TITLE: Cloud Trace API
NAME: composer.googleapis.com
TITLE: Cloud Composer API
NAME: compute.googleapis.com
TITLE: Compute Engine API
NAME: container.googleapis.com
TITLE: Kubernetes Engine API
NAME: containeranalysis.googleapis.com
TITLE: Container Analysis API
NAME: containerfilesystem.googleapis.com
TITLE: Container File System API
NAME: containerregistry.googleapis.com
TITLE: Container Registry API
NAME: containerscanning.googleapis.com
TITLE: Container Scanning API
NAME: dataflow.googleapis.com
TITLE: Dataflow API
NAME: dataproc-control.googleapis.com
TITLE: Cloud Dataproc Control API
NAME: dataproc.googleapis.com
TITLE: Cloud Dataproc API
NAME: datastore.googleapis.com
TITLE: Cloud Datastore API
NAME: deploymentmanager.googleapis.com
TITLE: Cloud Deployment Manager V2 API
NAME: dlp.googleapis.com
TITLE: Cloud Data Loss Prevention (DLP)
NAME: dns.googleapis.com
TITLE: Cloud DNS API
NAME: drive.googleapis.com
TITLE: Google Drive API
NAME: endpoints.googleapis.com
TITLE: Google Cloud Endpoints
NAME: firebasedynamiclinks.googleapis.com
TITLE: Firebase Dynamic Links API
NAME: firebaseinstallations.googleapis.com
TITLE: Firebase Installations API
NAME: firebaseremoteconfig.googleapis.com
TITLE: Firebase Remote Config API
NAME: firebaserules.googleapis.com
TITLE: Firebase Rules API
NAME: firestore.googleapis.com
TITLE: Cloud Firestore API
NAME: gmail.googleapis.com
TITLE: Gmail API
NAME: googlecloudmessaging.googleapis.com
TITLE: Cloud Messaging
NAME: groupsmigration.googleapis.com
TITLE: Groups Migration API
NAME: groupssettings.googleapis.com
TITLE: Groups Settings API
NAME: iam.googleapis.com
TITLE: Identity and Access Management (IAM) API
NAME: iamcredentials.googleapis.com
TITLE: IAM Service Account Credentials API
NAME: language.googleapis.com
TITLE: Cloud Natural Language API
NAME: logging.googleapis.com
TITLE: Cloud Logging API
NAME: maps-android-backend.googleapis.com
TITLE: Maps SDK for Android
NAME: maps-embed-backend.googleapis.com
TITLE: Maps Embed API
NAME: maps-ios-backend.googleapis.com
TITLE: Maps SDK for iOS
NAME: monitoring.googleapis.com
TITLE: Cloud Monitoring API
NAME: networkconnectivity.googleapis.com
TITLE: Network Connectivity API
NAME: oslogin.googleapis.com
TITLE: Cloud OS Login API
NAME: people.googleapis.com
TITLE: People API
NAME: pubsub.googleapis.com
TITLE: Cloud Pub/Sub API
NAME: resourceviews.googleapis.com
TITLE: Compute Engine Instance Groups API
NAME: runtimeconfig.googleapis.com
TITLE: Cloud Runtime Configuration API
NAME: script.googleapis.com
TITLE: Apps Script API
NAME: servicecontrol.googleapis.com
TITLE: Service Control API
NAME: servicemanagement.googleapis.com
TITLE: Service Management API
NAME: serviceusage.googleapis.com
TITLE: Service Usage API
NAME: sheets.googleapis.com
TITLE: Google Sheets API
NAME: source.googleapis.com
TITLE: Legacy Cloud Source Repositories API
NAME: sourcerepo.googleapis.com
TITLE: Cloud Source Repositories API
NAME: spanner.googleapis.com
TITLE: Cloud Spanner API
NAME: speech.googleapis.com
TITLE: Cloud Speech-to-Text API
NAME: sql-component.googleapis.com
TITLE: Cloud SQL
NAME: sqladmin.googleapis.com
TITLE: Cloud SQL Admin API
NAME: storage-api.googleapis.com
TITLE: Google Cloud Storage JSON API
NAME: storage-component.googleapis.com
TITLE: Cloud Storage
NAME: storage.googleapis.com
TITLE: Cloud Storage API
NAME: storagetransfer.googleapis.com
TITLE: Storage Transfer API
NAME: tasks.googleapis.com
TITLE: Google Tasks API
NAME: testing.googleapis.com
TITLE: Cloud Testing API
NAME: toolresults.googleapis.com
TITLE: Cloud Tool Results API
NAME: translate.googleapis.com
TITLE: Cloud Translation API
NAME: videointelligence.googleapis.com
TITLE: Cloud Video Intelligence API
NAME: vision.googleapis.com
TITLE: Cloud Vision API
NAME: youtubeanalytics.googleapis.com
TITLE: YouTube Analytics API
NAME: youtubereporting.googleapis.com
TITLE: YouTube Reporting API
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ \
> ^C
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ KEYRING_NAME=test CRYPTOKEY_NAME=qwiklab
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ gcloud kms keyrings create $KEYRING_NAME --location global
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ gcloud kms keys create $CRYPTOKEY_NAME --location global --keyring $KEYRING_NAME --purpose encryption
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ tail 1.
Attached is the Delta position for 1/18, 1/31, 6/20, 7/16, 9/24
<< File: west_delta_pos.xls >>
Let me know if you have any questions.
Heatherstudent_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ PLAINTEXT=$(cat 1. | base64 -w0)
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \
-d "{\"plaintext\":\"$PLAINTEXT\"}" \
-H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\
-H "Content-Type: application/json"
* Trying 74.125.199.95:443...
* Connected to cloudkms.googleapis.com (74.125.199.95) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=upload.video.google.com
* start date: Jul 10 08:21:11 2023 GMT
* expire date: Oct 2 08:21:10 2023 GMT
* subjectAltName: host "cloudkms.googleapis.com" matched cert's "*.googleapis.com"
* issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x563729bf12c0)
> POST /v1/projects/qwiklabs-gcp-03-6ca5b3b7ee09/locations/global/keyRings/test/cryptoKeys/qwiklab:encrypt HTTP/2
> Host: cloudkms.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization:Bearer ya29.a0AfB_byDUBAjp3mNQlPpUwo-8prfNw2B5Whr1BOTjxB8cHToNma0uw19cqx8gyAzeYbdm1OXrxcnIw-uxMhLSzEWyskBb79xRWVFl36fLQftPOx-5Bz6tm20LW1vi1sjkDKDEiXqP3h8MLWI1ph6dcYiFKePQTvEJVks8iho1keNNHA8bblksK9tFCTyTVFv7awSvRQzaDQykCV6frYMIDFX3ZvEAATEfKO_nj-X1yqjYimD3mb5T8kVxdqv2PGcJuuSkQihbeqWEFAjUR41V9EpZeyURUFSesIZxzGpauo5Jl_W9CN5r7wr8Q7Od4ikd1LowzibUOXQSNnmyC-aEWoRxydcx3W__Jd3zb8oTFia0J4wD3QKlShVBnt1bkbs-EKth6l13LldabAu0aDc--Pn7-waCgYKAW0SARESFQHsvYlsO1dMZZbKTiWIv-YB4Ze79Q0417
> content-type: application/json
> content-length: 2384
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200
< content-type: application/json; charset=UTF-8
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< date: Thu, 03 Aug 2023 19:58:48 GMT
< server: ESF
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
<
{
"name": "projects/qwiklabs-gcp-03-6ca5b3b7ee09/locations/global/keyRings/test/cryptoKeys/qwiklab/cryptoKeyVersions/1",
"ciphertext": "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",
"ciphertextCrc32c": "2639283167",
"protectionLevel": "SOFTWARE"
}
* Connection #0 to host cloudkms.googleapis.com left intact
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \
-d "{\"plaintext\":\"$PLAINTEXT\"}" \
-H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\
-H "Content-Type:application/json" \
| jq .ciphertext -r > 1.encrypted
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 74.125.197.95:443...
* Connected to cloudkms.googleapis.com (74.125.197.95) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [15 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [4395 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [78 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=upload.video.google.com
* start date: Jul 10 08:21:11 2023 GMT
* expire date: Oct 2 08:21:10 2023 GMT
* subjectAltName: host "cloudkms.googleapis.com" matched cert's "*.googleapis.com"
* issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x5632996832c0)
} [5 bytes data]
> POST /v1/projects/qwiklabs-gcp-03-6ca5b3b7ee09/locations/global/keyRings/test/cryptoKeys/qwiklab:encrypt HTTP/2
> Host: cloudkms.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization:Bearer ya29.a0AfB_byDUBAjp3mNQlPpUwo-8prfNw2B5Whr1BOTjxB8cHToNma0uw19cqx8gyAzeYbdm1OXrxcnIw-uxMhLSzEWyskBb79xRWVFl36fLQftPOx-5Bz6tm20LW1vi1sjkDKDEiXqP3h8MLWI1ph6dcYiFKePQTvEJVks8iho1keNNHA8bblksK9tFCTyTVFv7awSvRQzaDQykCV6frYMIDFX3ZvEAATEfKO_nj-X1yqjYimD3mb5T8kVxdqv2PGcJuuSkQihbeqWEFAjUR41V9EpZeyURUFSesIZxzGpauo5Jl_W9CN5r7wr8Q7Od4ikd1LowzibUOXQSNnmyC-aEWoRxydcx3W__Jd3zb8oTFia0J4wD3QKlShVBnt1bkbs-EKth6l13LldabAu0aDc--Pn7-waCgYKAW0SARESFQHsvYlsO1dMZZbKTiWIv-YB4Ze79Q0417
> content-type:application/json
> content-length: 2384
>
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
} [5 bytes data]
* We are completely uploaded and fine
{ [5 bytes data]
< HTTP/2 200
< content-type: application/json; charset=UTF-8
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< date: Thu, 03 Aug 2023 20:04:56 GMT
< server: ESF
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
<
{ [5 bytes data]
100 5077 0 2693 100 2384 24261 21477 --:--:-- --:--:-- --:--:-- 45738
* Connection #0 to host cloudkms.googleapis.com left intact
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$
student_04_140dad0d0d33@cloudshell:~ (qwiklabs-gcp-03-6ca5b3b7ee09)$ curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:decrypt" \
-d "{\"ciphertext\":\"$(cat 1.encrypted)\"}" \
-H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\
-H "Content-Type:application/json" \
| jq .plaintext -r | base64 -d
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 74.125.197.95:443...
* Connected to cloudkms.googleapis.com (74.125.197.95) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [15 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [4395 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [79 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=upload.video.google.com
* start date: Jul 10 08:21:11 2023 GMT
* expire date: Oct 2 08:21:10 2023 GMT
* subjectAltName: host "cloudkms.googleapis.com" matched cert's "*.googleapis.com"
* issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x559fedd0e2c0)
} [5 bytes data]
> POST /v1/projects/qwiklabs-gcp-03-6ca5b3b7ee09/locations/global/keyRings/test/cryptoKeys/qwiklab:decrypt HTTP/2
> Host: cloudkms.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization:Bearer ya29.a0AfB_byDUBAjp3mNQlPpUwo-8prfNw2B5Whr1BOTjxB8cHToNma0uw19cqx8gyAzeYbdm1OXrxcnIw-uxMhLSzEWyskBb79xRWVFl36fLQftPOx-5Bz6tm20LW1vi1sjkDKDEiXqP3h8MLWI1ph6dcYiFKePQTvEJVks8iho1keNNHA8bblksK9tFCTyTVFv7awSvRQzaDQykCV6frYMIDFX3ZvEAATEfKO_nj-X1yqjYimD3mb5T8kVxdqv2PGcJuuSkQihbeqWEFAjUR41V9EpZeyURUFSesIZxzGpauo5Jl_W9CN5r7wr8Q7Od4ikd1LowzibUOXQSNnmyC-aEWoRxydcx3W__Jd3zb8oTFia0J4wD3QKlShVBnt1bkbs-EKth6l13LldabAu0aDc--Pn7-waCgYKAW0SARESFQHsvYlsO1dMZZbKTiWIv-YB4Ze79Q0417
> content-type:application/json
> content-length: 2497
>
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
} [5 bytes data]
* We are completely uploaded and fine
{ [5 bytes data]
< HTTP/2 200
< content-type: application/json; charset=UTF-8
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< date: Thu, 03 Aug 2023 20:05:11 GMT
< server: ESF
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
<
{ [5 bytes data]
100 4978 0 2481 100 2497 21763 21903 --:--:-- --:--:-- --:--:-- 43666
* Connection #0 to host cloudkms.googleapis.com left intact
Message-ID: <16159836.1075855377439.JavaMail.evans@thyme>
Date: Fri, 7 Dec 2001 10:06:42 -0800 (PST)
From: heather.dunton@enron.com
To: k..allen@enron.com
Subject: RE: West Position
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-From: Dunton, Heather </O=ENRON/OU=NA/CN=RECIPIENTS/CN=HDUNTON>
X-To: Allen, Phillip K. </O=ENRON/OU=NA/CN=RECIPIENTS/CN=Pallen>
X-cc:
X-bcc:
X-Folder: \Phillip_Allen_Jan2002_1\Allen, Phillip K.\Inbox
X-Origin: Allen-P
X-FileName: pallen (Non-Privileged).pst
Please let me know if you still need Curve Shift.
Thanks,
Heather
-----Original Message-----
From: Allen, Phillip K.
Sent: Friday, December 07, 2001 5:14 AM
To: Dunton, Heather
Subject: RE: West Position
Heather,
Did you attach the file to this email?
-----Original Message-----
From: Dunton, Heather
Sent: Wednesday, December 05, 2001 1:43 PM
To: Allen, Phillip K.; Belden, Tim
Subject: FW: West Position
Attached is the Delta position for 1/16, 1/30, 6/19, 7/13, 9/21
-----Original Message-----
From: Allen, Phillip K.
Sent: Wednesday, December 05, 2001 6:41 AM
To: Dunton, Heather
Subject: RE: West Position
Heather,
This is exactly what we need. Would it possible to add the prior day for each of the dates below to the pivot table. In order to validate the curve shift on the dates below we also need the prior days ending positions.
Thank you,
Phillip Allen
-----Original Message-----
From: Dunton, Heather
Sent: Tuesday, December 04, 2001 3:12 PM
To: Belden, Tim; Allen, Phillip K.
Cc: Driscoll, Michael M.
Subject: West Position
Attached is the Delta position for 1/18, 1/31, 6/20, 7/16, 9/24
<< File: west_delta_pos.xls >>
Let me know if you have any questions.
C:\Users\Ketan.Patel\Desktop\2023-08-03 13_18_33-.png
-gcp-03-6ca5b3b7ee09)$ history
1 gcloud auth list
2 gcloud config list project
3 BUCKET_NAME="qwiklabs-gcp-03-6ca5b3b7ee09-enron_corpus"
4 echo $BUCKET_NAME
5 gsutil mb gs://${BUCKET_NAME}
6 gsutil cp gs://enron_emails/allen-p/inbox/1. .
7 tail 1
8 ls
9 ls -l
10 tail 1.
11 gcloud services enable cloudkms.googleapis.com
12 gcloud services list
13 \
14 KEYRING_NAME=test CRYPTOKEY_NAME=qwiklab
15 gcloud kms keyrings create $KEYRING_NAME --location global
16 gcloud kms keys create $CRYPTOKEY_NAME --location global --keyring $KEYRING_NAME --purpose encryption
17 tail 1.
18 PLAINTEXT=$(cat 1. | base64 -w0)
19 curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" -d "{\"plaintext\":\"$PLAINTEXT\"}" -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json"
20 curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" -d "{\"plaintext\":\"$PLAINTEXT\"}" -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type:application/json" | jq .ciphertext -r > 1.encrypted
21 curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:decrypt" -d "{\"ciphertext\":\"$(cat 1.encrypted)\"}" -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type:application/json" | jq .plaintext -r | base64 -d
22 gsutil cp 1.encrypted gs://${BUCKET_NAME}
23 history
24 USER_EMAIL=$(gcloud auth list --limit=1 2>/dev/null | grep '@' | awk '{print $2}')
25 gcloud auth list --limit=1 2>/dev/null | grep '@' | awk '{print $2}'
26 USER_EMAIL=$(gcloud auth list --limit=1 2>/dev/null | grep '@' | awk '{print $2}')
27 gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME --location global --member user:$USER_EMAIL --role roles/cloudkms.admin
28 gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME --location global --member user:$USER_EMAIL --role roles/cloudkms.cryptoKeyEncrypterDecrypter
29 gsutil -m cp -r gs://enron_emails/allen-p .
30 ls
31 ls -l allen-p/
32 ls -lR allen-p/
33 MYDIR=allen-p
34 FILES=$(find $MYDIR -type f -not -name "*.encrypted")
35 for file in $FILES; do PLAINTEXT=$(cat $file | base64 -w0); curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" -d "{\"pla
No comments:
Post a Comment