Control: 2.15 Ensure 'Access Approval' is 'Enabled'
Description
GCP Access Approval enables you to require your organizations' explicit approval whenever Google support try to access your projects. You can then select users within your organization who can approve these requests through giving them a security role in IAM. All access requests display which Google Employee requested them in an email or Pub/Sub message that you can choose to Approve. This adds an additional control and logging of who in your organization approved/denied these requests.
Controlling access to your information is one of the foundations of information security. Google Employees do have access to your organizations' projects for support reasons. With Access Approval, organizations can then be certain that their information is accessed by only approved Google Personnel.
Remediation
From Console
- From the Google Cloud Home, within the project you wish to enable, click on the Navigation hamburger menu in the top left. Hover over the 
SecurityMenu. SelectAccess Approvalin the middle of the column that opens. - The status will be displayed here. On this screen, there is an option to click 
Enroll. If it is greyed out and you see an error bar at the top of the screen that saysAccess Transparency is not enabledplease view the corresponding reference within this section to enable it. - In the second screen click 
Enroll. 
Grant an IAM Group or User the role with permissions to Add Users to be Access Approval message Recipients
- From the Google Cloud Home, within the project you wish to enable, click on the Navigation hamburger menu in the top left. Hover over the 
IAM and Admin. SelectIAMin the middle of the column that opens. - Click the blue button the says 
+ADDat the top of the screen. - In the 
principalsfield, select a user or group by typing in their associated email address. - Click on the role field to expand it. In the filter field enter 
Access Approval Approverand select it. - Click 
save. 
Add a Group or User as an Approver for Access Approval Requests
- As a user with the 
Access Approval Approverpermission, within the project where you wish to add an email address to which request will be sent, click on the Navigation hamburger menu in the top left. Hover over theSecurityMenu. SelectAccess Approvalin the middle of the column that opens. - Click 
Manage Settings. - Under 
Set up approval notifications, enter the email address associated with a Google Cloud User or Group you wish to send Access Approval requests to. All future access approvals will be sent as emails to this address. 
From Command Line
- To update all services in an entire project, run the following command from an account that has permissions as an 'Approver for Access Approval Requests'
 
gcloud access-approval settings update --project=<project name> --enrolled_services=all --notification_emails='<email recipient for access approval requests>@<domain name>'
Default Value
By default Access Approval and its dependency of Access Transparency are not enabled.
Usage
Run the control in your terminal:
powerpipe control run gcp_compliance.control.cis_v300_2_15Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run gcp_compliance.control.cis_v300_2_15 --shareSQL
This control uses a named query:
select  self_link as resource,  case    when access_approval_settings is not null and access_approval_settings -> 'notificationEmails' is not null then 'ok'    else 'alarm'  end as status,  case    when access_approval_settings is not null and access_approval_settings -> 'notificationEmails' is not null      then name || ' access approval is enabled.'    else name || ' access approval is disabled.'  end as reason  , project_id as projectfrom  gcp_project;