This is an automated email from the ASF dual-hosted git repository.
eladkal pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 23fc2ced35b Replace AWS keys with placeholder text in documentation
and code examples (#63577)
23fc2ced35b is described below
commit 23fc2ced35b462a33f6dad25e16729038fb91a38
Author: Kalyan R <[email protected]>
AuthorDate: Tue Mar 31 12:54:05 2026 +0530
Replace AWS keys with placeholder text in documentation and code examples
(#63577)
Co-authored-by: Niko Oliveira <[email protected]>
---
airflow-core/docs/howto/connection.rst | 4 ++--
providers/amazon/docs/connections/aws.rst | 12 ++++++------
providers/amazon/provider.yaml | 12 ++++++------
.../src/airflow/providers/amazon/aws/hooks/athena_sql.py | 6 +++---
.../src/airflow/providers/amazon/aws/hooks/base_aws.py | 6 +++---
.../amazon/src/airflow/providers/amazon/get_provider_info.py | 12 ++++++------
6 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/airflow-core/docs/howto/connection.rst
b/airflow-core/docs/howto/connection.rst
index 014da48fc35..8f06ed21ba2 100644
--- a/airflow-core/docs/howto/connection.rst
+++ b/airflow-core/docs/howto/connection.rst
@@ -98,10 +98,10 @@ In addition, same approach could be used to convert
Connection from URI format t
>>> c = Connection(
... conn_id="awesome_conn",
... description="Example Connection",
- ...
uri="aws://AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI%2FK7MDENG%2FbPxRfiCYEXAMPLEKEY@/?__extra__=%7B%22region_name%22%3A+%22eu-central-1%22%2C+%22config_kwargs%22%3A+%7B%22retries%22%3A+%7B%22mode%22%3A+%22standard%22%2C+%22max_attempts%22%3A+10%7D%7D%7D",
+ ...
uri="aws://YOUR_AWS_ACCESS_KEY_ID:YOUR_AWS_SECRET_ACCESS_KEY@/?__extra__=%7B%22region_name%22%3A+%22eu-central-1%22%2C+%22config_kwargs%22%3A+%7B%22retries%22%3A+%7B%22mode%22%3A+%22standard%22%2C+%22max_attempts%22%3A+10%7D%7D%7D",
... )
>>> print(f"AIRFLOW_CONN_{c.conn_id.upper()}='{c.as_json()}'")
- AIRFLOW_CONN_AWESOME_CONN='{"conn_type": "aws", "description": "Example
Connection", "host": "", "login": "AKIAIOSFODNN7EXAMPLE", "password":
"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "schema": "", "extra":
{"region_name": "eu-central-1", "config_kwargs": {"retries": {"mode":
"standard", "max_attempts": 10}}}}'
+ AIRFLOW_CONN_AWESOME_CONN='{"conn_type": "aws", "description": "Example
Connection", "host": "", "login": "YOUR_AWS_ACCESS_KEY_ID", "password":
"YOUR_AWS_SECRET_ACCESS_KEY", "schema": "", "extra": {"region_name":
"eu-central-1", "config_kwargs": {"retries": {"mode": "standard",
"max_attempts": 10}}}}'
URI format example
diff --git a/providers/amazon/docs/connections/aws.rst
b/providers/amazon/docs/connections/aws.rst
index 0f9882b8b56..ed5750d83ad 100644
--- a/providers/amazon/docs/connections/aws.rst
+++ b/providers/amazon/docs/connections/aws.rst
@@ -152,8 +152,8 @@ Snippet to create Connection and convert to URI
conn = Connection(
conn_id="sample_aws_connection",
conn_type="aws",
- login="AKIAIOSFODNN7EXAMPLE", # Reference to AWS Access Key ID
- password="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", # Reference to
AWS Secret Access Key
+ login="YOUR_AWS_ACCESS_KEY_ID", # Reference to AWS Access Key ID
+ password="YOUR_AWS_SECRET_ACCESS_KEY", # Reference to AWS Secret
Access Key
extra={
# Specify extra parameters here
"region_name": "eu-central-1",
@@ -164,7 +164,7 @@ Snippet to create Connection and convert to URI
env_key = f"AIRFLOW_CONN_{conn.conn_id.upper()}"
conn_uri = conn.get_uri()
print(f"{env_key}={conn_uri}")
- #
AIRFLOW_CONN_SAMPLE_AWS_CONNECTION=aws://AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI%2FK7MDENG%2FbPxRfiCYEXAMPLEKEY@/?region_name=eu-central-1
+ #
AIRFLOW_CONN_SAMPLE_AWS_CONNECTION=aws://YOUR_AWS_ACCESS_KEY_ID:YOUR_AWS_SECRET_ACCESS_KEY@/?region_name=eu-central-1
os.environ[env_key] = conn_uri
print(conn.test_connection()) # Validate connection credentials.
@@ -208,7 +208,7 @@ With a AWS IAM key pair
.. code-block:: bash
- export
AIRFLOW_CONN_AWS_DEFAULT=aws://AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI%2FK7MDENG%2FbPxRfiCYEXAMPLEKEY@
+ export
AIRFLOW_CONN_AWS_DEFAULT=aws://YOUR_AWS_ACCESS_KEY_ID:YOUR_AWS_SECRET_ACCESS_KEY@
Note here, that the secret access key has been URL-encoded (changing ``/``
to ``%2F``), and also the
trailing ``@`` (without which, it is treated as ``<host>:<port>`` and will
not work)
@@ -219,8 +219,8 @@ With a AWS IAM key pair
export AIRFLOW_CONN_AWS_DEFAULT='{
"conn_type": "aws",
- "login": "AKIAIOSFODNN7EXAMPLE",
- "password": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
+ "login": "YOUR_AWS_ACCESS_KEY_ID",
+ "password": "YOUR_AWS_SECRET_ACCESS_KEY"
}'
Examples for the **Extra** field
diff --git a/providers/amazon/provider.yaml b/providers/amazon/provider.yaml
index effb258ccef..9431730bc02 100644
--- a/providers/amazon/provider.yaml
+++ b/providers/amazon/provider.yaml
@@ -942,8 +942,8 @@ connection-types:
login: AWS Access Key ID
password: AWS Secret Access Key
placeholders:
- login: AKIAIOSFODNN7EXAMPLE
- password: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+ login: YOUR_AWS_ACCESS_KEY_ID
+ password: YOUR_AWS_SECRET_ACCESS_KEY
extra: |
{
"region_name": "us-east-1",
@@ -952,7 +952,7 @@ connection-types:
"role_arn": "arn:aws:iam::123456789098:role/role-name",
"assume_role_method": "assume_role",
"assume_role_kwargs": {"RoleSessionName": "airflow"},
- "aws_session_token": "AQoDYXdzEJr...EXAMPLETOKEN",
+ "aws_session_token": "YOUR_AWS_SESSION_TOKEN",
"endpoint_url": "http://localhost:4566"
}
- hook-class-name: airflow.providers.amazon.aws.hooks.chime.ChimeWebhookHook
@@ -1015,8 +1015,8 @@ connection-types:
login: AWS Access Key ID
password: AWS Secret Access Key
placeholders:
- login: AKIAIOSFODNN7EXAMPLE
- password: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+ login: YOUR_AWS_ACCESS_KEY_ID
+ password: YOUR_AWS_SECRET_ACCESS_KEY
extra: |
{
"aws_domain": "amazonaws.com",
@@ -1029,7 +1029,7 @@ connection-types:
"role_arn": "arn:aws:iam::123456789098:role/role-name",
"assume_role_method": "assume_role",
"assume_role_kwargs": {"RoleSessionName": "airflow"},
- "aws_session_token": "AQoDYXdzEJr...EXAMPLETOKEN",
+ "aws_session_token": "YOUR_AWS_SESSION_TOKEN",
"endpoint_url": "http://localhost:4566"
}
diff --git
a/providers/amazon/src/airflow/providers/amazon/aws/hooks/athena_sql.py
b/providers/amazon/src/airflow/providers/amazon/aws/hooks/athena_sql.py
index 59a9191b61a..94348612700 100644
--- a/providers/amazon/src/airflow/providers/amazon/aws/hooks/athena_sql.py
+++ b/providers/amazon/src/airflow/providers/amazon/aws/hooks/athena_sql.py
@@ -106,8 +106,8 @@ class AthenaSQLHook(AwsBaseHook, DbApiHook):
"password": "AWS Secret Access Key",
},
"placeholders": {
- "login": "AKIAIOSFODNN7EXAMPLE",
- "password": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+ "login": "YOUR_AWS_ACCESS_KEY_ID",
+ "password": "YOUR_AWS_SECRET_ACCESS_KEY",
"extra": json.dumps(
{
"aws_domain": "amazonaws.com",
@@ -120,7 +120,7 @@ class AthenaSQLHook(AwsBaseHook, DbApiHook):
"role_arn": "arn:aws:iam::123456789098:role/role-name",
"assume_role_method": "assume_role",
"assume_role_kwargs": {"RoleSessionName": "airflow"},
- "aws_session_token": "AQoDYXdzEJr...EXAMPLETOKEN",
+ "aws_session_token": "YOUR_AWS_SESSION_TOKEN",
"endpoint_url": "http://localhost:4566",
},
indent=2,
diff --git
a/providers/amazon/src/airflow/providers/amazon/aws/hooks/base_aws.py
b/providers/amazon/src/airflow/providers/amazon/aws/hooks/base_aws.py
index ec3e8018fec..5fc6c4a9a70 100644
--- a/providers/amazon/src/airflow/providers/amazon/aws/hooks/base_aws.py
+++ b/providers/amazon/src/airflow/providers/amazon/aws/hooks/base_aws.py
@@ -912,8 +912,8 @@ class AwsGenericHook(BaseHook, Generic[BaseAwsConnection]):
"password": "AWS Secret Access Key",
},
"placeholders": {
- "login": "AKIAIOSFODNN7EXAMPLE",
- "password": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+ "login": "YOUR_AWS_ACCESS_KEY_ID",
+ "password": "YOUR_AWS_SECRET_ACCESS_KEY",
"extra": json.dumps(
{
"region_name": "us-east-1",
@@ -922,7 +922,7 @@ class AwsGenericHook(BaseHook, Generic[BaseAwsConnection]):
"role_arn": "arn:aws:iam::123456789098:role/role-name",
"assume_role_method": "assume_role",
"assume_role_kwargs": {"RoleSessionName": "airflow"},
- "aws_session_token": "AQoDYXdzEJr...EXAMPLETOKEN",
+ "aws_session_token": "YOUR_AWS_SESSION_TOKEN",
"endpoint_url": "http://localhost:4566",
},
indent=2,
diff --git a/providers/amazon/src/airflow/providers/amazon/get_provider_info.py
b/providers/amazon/src/airflow/providers/amazon/get_provider_info.py
index d29d1099506..0db61399617 100644
--- a/providers/amazon/src/airflow/providers/amazon/get_provider_info.py
+++ b/providers/amazon/src/airflow/providers/amazon/get_provider_info.py
@@ -1089,9 +1089,9 @@ def get_provider_info():
"hidden-fields": ["host", "schema", "port"],
"relabeling": {"login": "AWS Access Key ID", "password":
"AWS Secret Access Key"},
"placeholders": {
- "login": "AKIAIOSFODNN7EXAMPLE",
- "password": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
- "extra": '{\n "region_name": "us-east-1",\n
"session_kwargs": {"profile_name": "default"},\n "config_kwargs": {"retries":
{"mode": "standard", "max_attempts": 10}},\n "role_arn":
"arn:aws:iam::123456789098:role/role-name",\n "assume_role_method":
"assume_role",\n "assume_role_kwargs": {"RoleSessionName": "airflow"},\n
"aws_session_token": "AQoDYXdzEJr...EXAMPLETOKEN",\n "endpoint_url":
"http://localhost:4566"\n}\n',
+ "login": "YOUR_AWS_ACCESS_KEY_ID",
+ "password": "YOUR_AWS_SECRET_ACCESS_KEY",
+ "extra": '{\n "region_name": "us-east-1",\n
"session_kwargs": {"profile_name": "default"},\n "config_kwargs": {"retries":
{"mode": "standard", "max_attempts": 10}},\n "role_arn":
"arn:aws:iam::123456789098:role/role-name",\n "assume_role_method":
"assume_role",\n "assume_role_kwargs": {"RoleSessionName": "airflow"},\n
"aws_session_token": "YOUR_AWS_SESSION_TOKEN",\n "endpoint_url":
"http://localhost:4566"\n}\n',
},
},
},
@@ -1131,9 +1131,9 @@ def get_provider_info():
"hidden-fields": ["host", "port"],
"relabeling": {"login": "AWS Access Key ID", "password":
"AWS Secret Access Key"},
"placeholders": {
- "login": "AKIAIOSFODNN7EXAMPLE",
- "password": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
- "extra": '{\n "aws_domain": "amazonaws.com",\n
"driver": "rest",\n "s3_staging_dir": "s3://bucket_name/staging/",\n
"work_group": "primary",\n "region_name": "us-east-1",\n "session_kwargs":
{"profile_name": "default"},\n "config_kwargs": {"retries": {"mode":
"standard", "max_attempts": 10}},\n "role_arn":
"arn:aws:iam::123456789098:role/role-name",\n "assume_role_method":
"assume_role",\n "assume_role_kwargs": {"RoleSessionName": "airflow"},\n
"aws_ses [...]
+ "login": "YOUR_AWS_ACCESS_KEY_ID",
+ "password": "YOUR_AWS_SECRET_ACCESS_KEY",
+ "extra": '{\n "aws_domain": "amazonaws.com",\n
"driver": "rest",\n "s3_staging_dir": "s3://bucket_name/staging/",\n
"work_group": "primary",\n "region_name": "us-east-1",\n "session_kwargs":
{"profile_name": "default"},\n "config_kwargs": {"retries": {"mode":
"standard", "max_attempts": 10}},\n "role_arn":
"arn:aws:iam::123456789098:role/role-name",\n "assume_role_method":
"assume_role",\n "assume_role_kwargs": {"RoleSessionName": "airflow"},\n
"aws_ses [...]
},
},
},