Bird
Raised Fist0
Apache Airflowdevops~5 mins

Secrets management in Apache Airflow - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is secrets management in Airflow?
Secrets management in Airflow is the practice of securely storing and accessing sensitive information like passwords, API keys, and tokens needed by workflows.
Click to reveal answer
beginner
Name one built-in backend Airflow supports for secrets management.
Airflow supports several backends like HashiCorp Vault, AWS Secrets Manager, Google Secret Manager, and environment variables for secrets management.
Click to reveal answer
intermediate
How do you configure Airflow to use HashiCorp Vault for secrets?
You set the 'secrets_backend' option in airflow.cfg to 'airflow.providers.hashicorp.secrets.vault.VaultBackend' and provide Vault connection details in the configuration.
Click to reveal answer
beginner
Why should you avoid hardcoding secrets in Airflow DAG files?
Hardcoding secrets risks exposing sensitive data in code repositories and logs, increasing the chance of leaks and security breaches.
Click to reveal answer
beginner
What is the benefit of using environment variables for secrets in Airflow?
Environment variables allow you to keep secrets outside the code and configuration files, making it easier to manage and rotate secrets securely.
Click to reveal answer
Which Airflow configuration option sets the secrets backend?
Asecret_manager
Bsecrets_backend
Cbackend_secret
Dsecret_storage
Which of these is NOT a supported secrets backend in Airflow?
AAzure Blob Storage
BHashiCorp Vault
CGoogle Secret Manager
DAWS Secrets Manager
Why is it important to use secrets management in Airflow?
ATo increase log verbosity
BTo speed up DAG execution
CTo store sensitive data securely
DTo reduce CPU usage
What is a risk of hardcoding secrets in Airflow DAG files?
ASecrets will auto-rotate
BDAGs will run slower
CAirflow will crash
DSecrets may be exposed in code repositories
How can environment variables help with secrets in Airflow?
AThey keep secrets outside code and config files
BThey encrypt secrets automatically
CThey speed up DAG scheduling
DThey disable logging
Explain how Airflow can securely access secrets using a secrets backend.
Think about how Airflow connects to external secret stores instead of storing secrets in code.
You got /4 concepts.
    Describe best practices for managing secrets in Airflow workflows.
    Consider security and ease of secret updates.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of secrets management in Apache Airflow?
      easy
      A. To keep sensitive information like passwords out of the code
      B. To speed up DAG execution
      C. To store large datasets
      D. To monitor task progress visually

      Solution

      1. Step 1: Understand what secrets management means

        Secrets management is about protecting sensitive data such as passwords or API keys from being exposed in code.
      2. Step 2: Identify the main goal in Airflow context

        Airflow uses secrets management to keep such sensitive info safe and separate from DAG code.
      3. Final Answer:

        To keep sensitive information like passwords out of the code -> Option A
      4. Quick Check:

        Secrets management = protect sensitive info [OK]
      Hint: Secrets management means hiding passwords from code [OK]
      Common Mistakes:
      • Confusing secrets management with data storage
      • Thinking it speeds up DAGs
      • Assuming it monitors tasks
      2. Which of the following is the correct way to retrieve a secret stored as an Airflow Variable in a DAG?
      easy
      A. get_variable('my_secret')
      B. Variable.get('my_secret')
      C. Variable.fetch('my_secret')
      D. fetch_variable('my_secret')

      Solution

      1. Step 1: Recall Airflow's Variable API

        Airflow provides a Variable class with a get() method to access stored variables or secrets.
      2. Step 2: Match the correct syntax

        The correct method call is Variable.get('variable_name'), so Variable.get('my_secret') is correct.
      3. Final Answer:

        Variable.get('my_secret') -> Option B
      4. Quick Check:

        Use Variable.get() to access secrets [OK]
      Hint: Use Variable.get() to fetch secrets in Airflow [OK]
      Common Mistakes:
      • Using non-existent methods like fetch or get_variable
      • Confusing function names
      • Missing the Variable class prefix
      3. Given this Airflow DAG snippet, what will be the output if the secret 'db_password' is stored as 'mypassword123' in Airflow Variables?
      from airflow.models import Variable
      
      password = Variable.get('db_password')
      print(password)
      medium
      A. Error: Variable not found
      B. db_password
      C. Variable.get('db_password')
      D. mypassword123

      Solution

      1. Step 1: Understand Variable.get() behavior

        Variable.get('db_password') fetches the value stored under 'db_password' key, which is 'mypassword123'.
      2. Step 2: Predict the print output

        Printing the variable will output the string 'mypassword123'.
      3. Final Answer:

        mypassword123 -> Option D
      4. Quick Check:

        Variable.get() returns stored secret value [OK]
      Hint: Variable.get() returns the secret's stored value [OK]
      Common Mistakes:
      • Thinking it prints the key name
      • Expecting the method call as output
      • Assuming an error without checking storage
      4. You wrote this code in your Airflow DAG to get a secret:
      from airflow.models import Variable
      
      api_key = Variable.get('api_key')
      But you get an error: "KeyError: 'api_key' not found". What is the best way to fix this?
      medium
      A. Add a default value like Variable.get('api_key', default_var='default')
      B. Change Variable.get to Variable.fetch
      C. Remove the import statement
      D. Rename 'api_key' to 'API_KEY'

      Solution

      1. Step 1: Understand the error cause

        The error means 'api_key' variable does not exist in Airflow Variables, so Variable.get() fails.
      2. Step 2: Use default_var to avoid error

        Adding default_var='default' returns 'default' if the variable is missing, preventing the error.
      3. Final Answer:

        Add a default value like Variable.get('api_key', default_var='default') -> Option A
      4. Quick Check:

        Use default_var to handle missing secrets safely [OK]
      Hint: Use default_var to avoid missing variable errors [OK]
      Common Mistakes:
      • Using non-existent Variable.fetch method
      • Removing imports breaks code
      • Changing variable name without updating storage
      5. You want to securely store and access AWS credentials in Airflow using AWS Secrets Manager. Which approach correctly integrates this with Airflow's secrets backend?
      hard
      A. Hardcode AWS credentials in DAG files for faster access
      B. Store credentials in Airflow Variables and access with Variable.get() only
      C. Configure airflow.cfg with [secrets] backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
      D. Use environment variables without any Airflow configuration

      Solution

      1. Step 1: Identify how Airflow integrates with AWS Secrets Manager

        Airflow supports multiple secrets backends configured in airflow.cfg under the [secrets] section.
      2. Step 2: Correctly configure the secrets backend

        Setting backend to airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend enables Airflow to fetch secrets from AWS Secrets Manager securely.
      3. Final Answer:

        Configure airflow.cfg with [secrets] backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend -> Option C
      4. Quick Check:

        Configure secrets backend for AWS Secrets Manager [OK]
      Hint: Set secrets backend in airflow.cfg for AWS Secrets Manager [OK]
      Common Mistakes:
      • Hardcoding credentials in DAGs (unsafe)
      • Using Variables only without backend config
      • Ignoring Airflow secrets backend configuration
      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