Ensure API Keys Are Restricted to Only APIs That Application Needs Access

API keys are insecure because they can be viewed publicly, such as from within a browser, or they can be accessed on a device where the key resides. It is recommended to restrict API keys to use (call) only APIs required by an application.

Risk Level: High
Cloud Entity: GCP API Key
CloudGuard Rule ID: D9.GCP.IAM.23
Covered by Spectral: No
Category: Security, Identity, & Compliance

GSL LOGIC

APIKey should have (restrictions.apiTargets length()>0)

REMEDIATION

From Portal

  1. Go to APIs & Services - Credentials using https://console.cloud.google.com/apis/credentials
  2. In the section API Keys, Click the API Key Name. The API Key properties display on a new page.
  3. Go to API restrictions.
  4. Click the Select API drop-down to choose an API.
  5. Click Save.
  6. Repeat steps 2,3,4,5 for every unrestricted API key

Note: Do not set API restrictions to Google Cloud APIs, as this option allows access to all services offered by Google cloud.

References

  1. https://cloud.google.com/docs/authentication/api-keys

GCP API Key

An API key is a simple encrypted string that you can use when calling Google Cloud APIs. A typical use of an API key is to pass the key into a REST API call as a query parameter.
API keys are useful for accessing public data anonymously, and are used to associate API requests with the consumer Google Cloud project for quota and billing.
API Keys provides you a programmatic interface to create and manage API keys for your project. It provides you more control over API keys than the API key-related tasks that you can do in the Cloud Console.

Compliance Frameworks

  • CloudGuard GCP All Rules Ruleset
  • GCP CIS Controls V 8
  • GCP CIS Foundations v. 1.0.0
  • GCP CIS Foundations v. 1.1.0
  • GCP CIS Foundations v. 1.2.0
  • GCP CIS Foundations v. 1.3.0
  • GCP CIS Foundations v. 2.0
  • GCP CloudGuard Best Practices
  • GCP MITRE ATT&CK Framework v12.1
  • GCP NIST 800-53 Rev 5