Bird
Raised Fist0
GCPcloud~7 mins

Binary Authorization for containers in GCP - Commands & Configuration

Choose your learning style10 modes available
Introduction
Binary Authorization helps ensure only trusted container images run on your Google Kubernetes Engine clusters. It blocks unapproved images, protecting your apps from harmful changes.
When you want to prevent unverified container images from running in your production environment.
When you need to enforce security policies on container deployments automatically.
When multiple teams deploy containers and you want to ensure only approved images are used.
When you want to audit and track which container images are allowed to run.
When you want to integrate image signing into your build and deployment process.
Config File - policy.yaml
policy.yaml
apiVersion: binaryauthorization.googleapis.com/v1
kind: Policy
metadata:
  name: my-binauthz-policy
spec:
  admissionWhitelistPatterns:
  - namePattern: "gcr.io/my-project/trusted-image:*"
  clusterAdmissionRules:
    "*":
      evaluationMode: REQUIRE_ATTESTATION
      enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
      attestationAuthority:
        name: projects/my-project/attestationAuthorities/my-attestor
  defaultAdmissionRule:
    evaluationMode: ALWAYS_ALLOW
    enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

This policy file defines which container images are allowed to run.

admissionWhitelistPatterns lets trusted images run without checks.

clusterAdmissionRules require attestation (signing) for all other images.

defaultAdmissionRule blocks images not meeting rules.

Commands
This command uploads and applies the Binary Authorization policy to your Google Cloud project to enforce image verification.
Terminal
gcloud container binauthz policy import --project=my-project --policy-file=policy.yaml
Expected OutputExpected
Policy imported successfully.
→
--project - Specifies the Google Cloud project to apply the policy.
→
--policy-file - Specifies the local policy file to import.
Creates an attestor resource that will verify container image signatures as part of the policy enforcement.
Terminal
gcloud container binauthz attestors create my-attestor --project=my-project --attestation-authority-note=my-note --attestation-authority-note-project=my-project
Expected OutputExpected
Created attestor [my-attestor].
→
--attestation-authority-note - Links the attestor to a note that defines trusted signers.
→
--attestation-authority-note-project - Specifies the project where the note is stored.
Attempts to deploy a pod using a trusted, signed container image to verify the policy allows it.
Terminal
kubectl run test-pod --image=gcr.io/my-project/trusted-image:v1
Expected OutputExpected
pod/test-pod created
Checks the status of pods to confirm the trusted image pod is running successfully.
Terminal
kubectl get pods
Expected OutputExpected
NAME READY STATUS RESTARTS AGE test-pod 1/1 Running 0 10s
Key Concept

If you remember nothing else from this pattern, remember: Binary Authorization blocks untrusted container images by requiring verified signatures before deployment.

Common Mistakes
Not creating or linking an attestor before applying the policy.
Without an attestor, the policy cannot verify image signatures, causing all deployments to be blocked.
Always create an attestor and link it properly in the policy before enforcing Binary Authorization.
Using unsigned or unapproved container images in deployments.
Binary Authorization will block these images, preventing pods from starting.
Sign container images with a trusted key and ensure they are approved in the policy.
Not importing the updated policy after changes.
Changes to the policy file won't take effect until imported, so enforcement won't match expectations.
Run the policy import command every time you update the policy.yaml file.
Summary
Create a Binary Authorization policy file to define trusted images and enforcement rules.
Import the policy into your Google Cloud project using gcloud commands.
Create an attestor to verify image signatures linked to the policy.
Deploy pods with signed images and verify they run successfully under the policy.

Practice

(1/5)
1. What is the main purpose of Binary Authorization in Google Cloud?
easy
A. To allow only trusted container images to run
B. To speed up container deployment
C. To monitor network traffic between containers
D. To automatically scale container clusters

Solution

  1. Step 1: Understand Binary Authorization's role

    Binary Authorization is designed to protect cloud environments by ensuring only trusted container images are deployed.
  2. Step 2: Identify the main function

    It uses policies and signatures to verify container images before they run, preventing untrusted code execution.
  3. Final Answer:

    To allow only trusted container images to run -> Option A
  4. Quick Check:

    Binary Authorization = Trusted container enforcement [OK]
Hint: Binary Authorization controls which containers can run [OK]
Common Mistakes:
  • Confusing it with scaling or monitoring tools
  • Thinking it speeds up deployment
  • Assuming it manages network traffic
2. Which of the following is the correct way to enable Binary Authorization on a Google Kubernetes Engine (GKE) cluster?
easy
A. gcloud container clusters create my-cluster --enable-binauthz
B. gcloud container clusters create my-cluster --enable-auth-binary
C. gcloud container clusters create my-cluster --enable-binary-auth
D. gcloud container clusters create my-cluster --enable-binary-authorization

Solution

  1. Step 1: Recall the correct flag for enabling Binary Authorization

    The official gcloud command uses the flag --enable-binary-authorization to enable this feature on a GKE cluster.
  2. Step 2: Compare options

    Only gcloud container clusters create my-cluster --enable-binary-authorization uses the exact correct flag syntax; others are incorrect or invalid flags.
  3. Final Answer:

    gcloud container clusters create my-cluster --enable-binary-authorization -> Option D
  4. Quick Check:

    Enable Binary Authorization flag = --enable-binary-authorization [OK]
Hint: Look for the full phrase 'binary-authorization' in the flag [OK]
Common Mistakes:
  • Using shortened or incorrect flag names
  • Mixing up flag order or syntax
  • Assuming 'binauthz' is the flag
3. Consider this policy snippet for Binary Authorization:
{
  "attestors": ["projects/my-project/attestors/my-attestor"],
  "defaultAdmissionRule": {
    "enforcementMode": "ENFORCED",
    "requireAttestationsBy": ["projects/my-project/attestors/my-attestor"]
  }
}
What happens if a container image is not signed by the specified attestor?
medium
A. The container image will be deployed but logged
B. The container image will be blocked from deployment
C. The container image will be deployed without checks
D. The container image will be automatically signed

Solution

  1. Step 1: Analyze the enforcement mode

    The policy sets "enforcementMode" to "ENFORCED", meaning only images meeting the policy are allowed.
  2. Step 2: Check attestation requirement

    The policy requires attestations by the specified attestor. Unsigned images do not meet this requirement.
  3. Final Answer:

    The container image will be blocked from deployment -> Option B
  4. Quick Check:

    Enforced mode + missing signature = block deployment [OK]
Hint: Enforced mode means no unsigned images allowed [OK]
Common Mistakes:
  • Confusing enforcement with audit mode
  • Thinking unsigned images are allowed with logs
  • Assuming automatic signing happens
4. You configured Binary Authorization but your container deployments are failing unexpectedly. Which of the following is a likely cause?
medium
A. The attestor's public key is not correctly configured
B. The cluster does not have enough CPU resources
C. The container image is too large
D. The network firewall blocks container traffic

Solution

  1. Step 1: Identify Binary Authorization failure reasons

    Binary Authorization failures often happen if the attestor's public key is missing or misconfigured, preventing signature verification.
  2. Step 2: Eliminate unrelated causes

    CPU resources, image size, and network firewall issues do not directly cause Binary Authorization failures.
  3. Final Answer:

    The attestor's public key is not correctly configured -> Option A
  4. Quick Check:

    Signature verification fails if attestor key is wrong [OK]
Hint: Check attestor keys first when deployments fail [OK]
Common Mistakes:
  • Blaming resource or network issues for auth failures
  • Ignoring attestor key setup
  • Assuming image size affects authorization
5. You want to test your Binary Authorization policy without blocking any container deployments. Which mode should you use and why?
hard
A. Disabled mode, to turn off Binary Authorization temporarily
B. Enforced mode, to block all untrusted images immediately
C. Audit mode, to log policy violations without blocking deployments
D. Strict mode, to require multiple attestations

Solution

  1. Step 1: Understand Binary Authorization modes

    Audit mode allows policy violations to be logged but does not block container deployments, ideal for testing.
  2. Step 2: Compare other modes

    Enforced mode blocks untrusted images, Disabled mode turns off checks, and Strict mode is not a standard mode.
  3. Final Answer:

    Audit mode, to log policy violations without blocking deployments -> Option C
  4. Quick Check:

    Audit mode = test without blocking [OK]
Hint: Use audit mode to test policies safely [OK]
Common Mistakes:
  • Confusing audit with enforced mode
  • Thinking disabled mode logs violations
  • Assuming strict mode exists
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard