ACE Module 5 v2.0
ACE Module 5 v2.0
Associate Cloud
Engineer Journey
What areas do you need to develop your skills in order to successfully manage
access for Google Cloud solutions? Recall that this exam section is narrower in scope
but nevertheless important for the role of an Associate Cloud Engineer. Let’s review
the diagnostic questions to help you target your study time to focus on the areas
where you need to develop your skills.
Your study plan:
Ensuring successful operation of a cloud solution
We’ll approach this review by looking at the objectives of this exam section and the
questions you just answered about each one. We’ll introduce an objective, briefly
review the answers to the related questions, then talk about where you can find out
more in the learning resources and/or in Google Cloud documentation. As we go
through each section objective, use the page in your workbook to mark the specific
documentation, courses (and modules!), and quests you’ll want to emphasize in your
study plan.
There are fewer objectives and tasks involved with this section - but don’t forget to
plan for them in your study time.
Managing Identity and
5.1 Access Management (IAM)
Tasks include:
● Viewing IAM policies
● Creating IAM policies
● Managing the various role types and defining custom IAM roles
(e.g., basic, predefined and custom)
The tasks included in this part of your job as an Associate Cloud Engineer include
viewing IAM policies, creating IAM policies, and knowing when to implement the
different types of policies, including basic, predefined and custom roles.
These are the diagnostic questions you answered that relate to this area:
Question 1: Identify types of members you can assign access to in IAM.
Question 2: Describe how to assign roles in the IAM interface.
Question 3: List the steps to create a custom role in IAM.
5.1 Diagnostic Question 01 Discussion
Question:
You need to configure access to Cloud Spanner from the GKE cluster that is
supporting Cymbal Superstore’s ecommerce microservices application. You want to
specify an account type to set the proper permissions. What should you do?
5.1 Diagnostic Question 01 Discussion
Feedback:
A. Assign permissions to a Google account referenced by the application
Feedback: Incorrect. A Google account uses a username and password to
authenticate a user. An application does not authenticate interactively with this type of
account.
Where to look:
https://cloud.google.com/iam/docs/overview
Content mapping:
● Google Cloud Fundamentals: Core Infrastructure (ILT and On-demand)
○ M2 Resources and Access in the Cloud
Summary:
Explanation/summary on the following slide.
Assign access to members using IAM
Member Identity
[email protected] [email protected]
Cloud Identity or
Google Group Google Workspace Domain
[email protected] [email protected]
A Google account represents anyone who interacts with Google Cloud. When signing
up for a Google account you will be asked to provide an email address that is
associated with the account. The email does not have to come from the gmail domain.
Google groups are collections of identity principals that can be referenced by the
email address assigned to the group. You can apply access policies to a group. Each
member of the group will receive the permissions you specify in the group policy as
they authenticate.
Google Workspace and Cloud Identity domains give you the ability to manage users
based on the way your organization interacts with Google. Each method gives you a
virtual group representing all the registered users in your organization and the ability
to add, modify, and delete users and groups.
5.1 Diagnostic Question 02 Discussion
You are trying to assign roles to the dev and A. Ask your administrator for
prod projects of Cymbal Superstore’s resourcemanager.projects.setIamPolicy roles
e-commerce app but are receiving an error for each project.
when you try to run set-iam policy. The B. Ask your administrator for the
projects are organized into an ecommerce roles/resourcemanager.folderIamAdmin for
folder in the Cymbal Superstore organizational the ecommerce folder.
hierarchy. You want to follow best practices for
C. Ask your administrator for the
the permissions you need while respecting the
roles/resourcemanager.organizationAdmin
practice of least privilege.
for Cymbal Superstore.
Question:
You are trying to assign roles to the dev and prod projects of Cymbal Superstore’s
e-commerce app but are receiving an error when you try to run set-iam policy. The
projects are organized into an ecommerce folder in the Cymbal Superstore
organizational hierarchy. You want to follow best practices for the permissions you
need while respecting the practice of least privilege. What should you do?
5.1 Diagnostic Question 02 Discussion
You are trying to assign roles to the dev and A. Ask your administrator for
prod projects of Cymbal Superstore’s resourcemanager.projects.setIamPolicy roles
e-commerce app but are receiving an error for each project.
when you try to run set-iam policy. The B. Ask your administrator for the
projects are organized into an ecommerce roles/resourcemanager.folderIamAdmin for
folder in the Cymbal Superstore organizational the ecommerce folder.
hierarchy. You want to follow best practices for
C. Ask your administrator for the
the permissions you need while respecting the
roles/resourcemanager.organizationAdmin
practice of least privilege.
for Cymbal Superstore.
Feedback:
A. Ask your administrator for resourcemanager.projects.setIamPolicy roles
for each project
Feedback: Incorrect. Best practice is to minimize the number of access policies you
require.
Where to look:
https://cloud.google.com/architecture/prep-kubernetes-engine-for-prod#managing_ide
ntity_and_access
Content mapping:
● Google Cloud Fundamentals: Core Infrastructure (ILT and On-demand)
○ M2 Resources and Access in the Cloud
Summary:
Explanation/summary on the following slide.
Assign roles in the
IAM interface
You have a custom role implemented for A. Make the change to the custom role locally
administration of the dev/test environment for and run an update on the custom role.
Cymbal Superstore’s transportation B. Delete the custom role and recreate a new
management application. You are developing a custom role with required permissions.
pilot to use Cloud Run instead of Cloud
C. Copy the existing role, add the new
Functions. You want to ensure your
permissions to the copy, and delete the
administrators have the correct access to the
old role.
new resources.
D. Create a new role with needed permissions
and migrate users to it.
What should you do?
Question:
You have a custom role implemented for administration of the dev/test environment
for Cymbal Superstore’s transportation management application. You are developing
a pilot to use Cloud Run instead of Cloud Functions. You want to ensure your
administrators have the correct access to the new resources. What should you do?
5.1 Diagnostic Question 03 Discussion
You have a custom role implemented for A. Make the change to the custom role locally
administration of the dev/test environment for and run an update on the custom role.
Cymbal Superstore’s transportation B. Delete the custom role and recreate a new
management application. You are developing a custom role with required permissions.
pilot to use Cloud Run instead of Cloud
C. Copy the existing role, add the new
Functions. You want to ensure your
permissions to the copy, and delete the
administrators have the correct access to the
old role.
new resources.
D. Create a new role with needed permissions
and migrate users to it.
What should you do?
Feedback:
*A. Make the change to the custom role locally and run an update on the custom role
Feedback: Correct! There is a recommended process to update an existing custom
role. You get the current policy, update it locally, and write the updated policy back into
Google Cloud. The gcloud commands used in this process include the get and update
policy subcommands.
B. Delete the custom role and recreate a new custom role with required permissions
Feedback: Incorrect. Recreating a custom role is not necessary in this scenario. You
can update the existing one.
C. Copy the existing role, add the new permissions to the copy, and delete the old role
Feedback: Incorrect. Copying an existing role creates a new custom role. Creating a
new custom role is not required for this scenario.
D. Create a new role with needed permissions and migrate users to it.
Feedback: Incorrect. Finding all users with this role and reassigning them could be
very time consuming. You should update the existing custom role instead.
Where to look:
https://cloud.google.com/iam/docs/creating-custom-roles
Content mapping:
● Architecting with Google Compute Engine (ILT)
○ M4 Identity and Access Management
Summary:
Explanation/summary on the following slide.
Google Group
✔ compute.instances.get
✔ compute.instances.list
Create custom roles ✔ compute.instances.start Instance Operator Role
✔ compute.instances.stop
project_a
The first thing you need to do when creating custom permissions is be familiar with
the permissions and roles that are available in your project or organization.
To make sure there isn’t already another role that will fill your needs, you can also
look at the permissions assigned to a specific role by looking at the role metadata.
The role metadata includes the role ID and the permissions associated with that role.
You need to have the Iam.roles.create permission. You have to be the owner of the
group or project, or have an organization administrator role or the IAM Role
Administrator role.
You can create roles from individual permissions, or you can select and pick
permissions from predefined roles.
To update an existing role, you run roles.get(), update the role locally, and then run
roles.patch().
Managing Identity and
5.1 Access Management (IAM)
=
Essential Google Cloud
Infrastructure: Core Services
● M1 Identity and Access
Management (IAM)
Let’s take a moment to consider resources that can help you build your knowledge
and skills in this area.
The concepts in the diagnostic questions we just reviewed are covered in these
modules and in this documentation. You’ll find this list in your workbook so you can
take a note of what you want to include later when you build your study plan. Based
on your experience with the diagnostic questions, you may want to include some or all
of these.
https://cloud.google.com/iam/docs/overview
https://cloud.google.com/architecture/prep-kubernetes-engine-for-prod#managing_ide
ntity_and_access
5.2 Managing service accounts
Tasks include:
● Creating service accounts
● Using Service Accounts in IAM policies with minimum permissions
● Assigning service accounts to resources
● Managing IAM of a Service Account
● Managing service account impersonation
● Creating and managing short-lived service account credentials
Cymbal Superstore’s three applications targeted for migration all have frontend and
backend resources required to implement their final solutions. We’ve discussed what
resources are required to support the backend stores, to include Cloud Spanner,
Bigtable, and Cloud SQL.
Question:
Which of the scenarios below is an example of a situation where you should use a
service account?
5.2 Diagnostic Question 04 Discussion
Feedback:
A. To directly access user data
Feedback: Incorrect. Service accounts should not be used to access user data
without consent.
Where to look:
https://cloud.google.com/docs/authentication/production#automatically
Content mapping:
● Google Cloud Fundamentals: Core Infrastructure (ILT and On-demand)
○ M2 Resources and Access in the Cloud
Summary:
Explanation/summary on the following slide.
Create, use, and assign service accounts
01 02 03
To create a service To assign policies: Attach a service account to
account: a resource as you create it
https://cloud.google.com/iam/docs/creating-managing-service-accounts#creating_a_s
ervice_account
To create a service account you use the “gcloud iam service-accounts create”
command.
Resources in Google Cloud can be assigned a service account that acts as the
resource’s default identity. This process is known as attaching a service account to a
resource. The resource, or apps running on the resource, impersonate the attached
service account to access Google Cloud APIs.
https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-in
stances#using
Multiple virtual machine instances can use the same service account, but a virtual
machine can only have one service account identity. Service account changes will
affect all virtual machine instances using the service account. You can allow access
via a cloud-platform scope that allows access to most cloud api’s and then grant the
service account the relevant IAM roles.
In gcloud you identify the service account you want to use by using the
“--service-account” argument.
https://developers.google.com/identity/protocols/oauth2/service-account#python
Two types of keys are available for authentication of a service account: user managed
keys and Google managed keys. You create and manage user managed keys
yourself. Google only stores the public key.
With Google managed keys Google stores both the public and private portion of the
keys. Google has APIs you can use to sign requests with the private key.
5.2 Diagnostic Question 05 Discussion
Question:
Cymbal Superstore is implementing a mobile app for end users to track deliveries that
are en route to them. The app needs to access data about truck location from
Pub/Sub using Google recommended practices. What kind of credentials should you
use?
5.2 Diagnostic Question 05 Discussion
Feedback:
A. API key
Feedback: Incorrect. API keys are used to access publicly available data.
Where to look:
https://cloud.google.com/docs/authentication/
Content mapping:
● Architecting with Google Compute Engine (ILT)
○ M4 Identity and Access Management
● Essential Google Cloud Infrastructure: Core Services (On-demand)
○ M1 Identity and Access Management
Summary:
Explanation/summary on the following slide.
Types of authentication keys
01 02 03 04
Environment
provided Service
API Key OAuth2.0 Client service account account key
Application credentials are based on what the application needs to access and where
it needs to run from.
● If you are accessing public data, the recommendation is to use an API key.
● If you are accessing private data on behalf of an end user, you should you use
the API’s OAuth2.0 client.
● If you are accessing private data on behalf of a service account attached to
resources inside a Google Cloud environment, you should use an environment
provided service account.
● If you are accessing private data on behalf of a service account running
outside of Google Cloud, you should create and use a service account key.
5.2 Managing service accounts
Courses Documentation
Let’s take a moment to consider resources that can help you build your knowledge
and skills in this area.
The concepts in the diagnostic questions we just reviewed are covered in these
modules and in this documentation. You’ll find this list in your workbook so you can
take a note of what you want to include later when you build your study plan. Based
on your experience with the diagnostic questions, you may want to include some or all
of these.
https://cloud.google.com/docs/authentication/production#automatically
https://cloud.google.com/docs/authentication/
5.3 Viewing audit logs
Google Cloud’s operations suite provides audit logs so you know who did what to
whom and when. This is another link in the security armor you provide when
implementing a Google Cloud solution. Who accessed your ecommerce app, and
when? Say you add an instance to your Cloud Spanner cluster to support users in a
new geographic area. Your Admin Activity log will record when that new instance was
created. If you need to list your instances, a data access admin_read entry will be
created. When a user creates a shopping cart and accesses it on their mobile device
at a later time, a data_read log entry will be posted for a read transaction in the data
access log. Keeping track of these important actions is an important step in an
overarching security strategy.
Question:
Which Cloud Audit log is disabled by default with a few exceptions?
5.3 Diagnostic Question 06 Discussion
Feedback:
A. Admin Activity audit logs
Feedback: Incorrect. Admin Activity audit logs are always written and you cannot
disable them.
Where to look:
https://cloud.google.com/logging/docs/audit
Content mapping:
● Google Cloud Fundamentals: Core Infrastructure (ILT and On-demand)
○ M7 Developing and Deploying in the Cloud
● Architecting with Google Compute Engine (ILT)
○ M7 Resource Monitoring
There are four types of audit logs available for each Cloud project, folder, and
organization:
● Admin Activity audit logs contain information about API calls that create or
change resource metadata. For example, changing access permissions or
creating VM instances are both recorded by Admin Activity audit logs. Admin
Activity audit logs are always written. You cannot disable them.
● Data Access audit log entries are written when the configuration or metadata
of resources are read. Calls to create, modify or read resource data are also
written to Data Access audit logs. They are disabled by default.
● System Event audit logs record actions that modify the configuration of
resources. They are always written.
● Policy Denied audit log entries are created when a Google Cloud service
denies access to a user or service account without the correct access in their
security policy. They are generated by default and you can’t disable them.
5.3 Diagnostic Question 07 Discussion
You are configuring audit logging for A. Admin Activity log entries
Cloud Storage. You want to know when
B. ADMIN_READ log entries
objects are added to a bucket.
C. DATA_READ log entries
Question:
You are configuring audit logging for Cloud Storage. You want to know when objects
are added to a bucket. Which type of audit log entry should you monitor?
5.3 Diagnostic Question 07 Discussion
You are configuring audit logging for A. Admin Activity log entries
Cloud Storage. You want to know when
B. ADMIN_READ log entries
objects are added to a bucket.
C. DATA_READ log entries
Feedback:
A. Admin Activity log entries
Feedback: Incorrect. Admin Activity logs record when buckets are created and
deleted.
Where to look:
https://cloud.google.com/storage/docs/audit-logging
Content mapping:
● Google Cloud Fundamentals: Core Infrastructure (ILT and On-demand)
○ M7 Developing and Deploying in the Cloud
● Architecting with Google Compute Engine (ILT)
○ M7 Resource Monitoring
Summary:
Explanation/summary on the following slide.
Types of entries in Cloud Storage audit logs
Cloud Storage audit logs include Admin Activity logs and Data Access logs.
Admin Activity logs include entries that modify the configuration of a project, bucket or
object. They also include operations such as creating and deleting buckets.
Courses Documentation
Let’s take a moment to consider resources that can help you build your knowledge
and skills in this area.
The concepts in the diagnostic questions we just reviewed are covered in these
modules and in this documentation. You’ll find this list in your workbook so you can
take a note of what you want to include later when you build your study plan. Based
on your experience with the diagnostic questions, you may want to include some or all
of these.
https://cloud.google.com/logging/docs/audit
https://cloud.google.com/storage/docs/audit-logging