AWS Security ChangesHomeSearch

AWS mwaa: MWAA dependency guidance refreshed to Airflow 3.3.1 and newer library pins

Service: mwaa · 2026-09-27 · Documentation low

File: mwaa/latest/userguide/best-practices-dependencies.md

Summary

Updates the Amazon MWAA dependency best-practices page: Airflow package-extras link and pinned example version moved from 2.5.1 to 3.3.1, Python library pins in the examples bumped (boto3/botocore 1.43.56, psycopg2-binary 2.9.12; removed obsolete boto/botocore 1.20.x and boto 2.x lines), placeholder renamed from {environment-version} to {Airflow-version}, S3 bucket placeholder changed to {S3_BUCKET}, plus minor wording/typo fixes.

Security assessment

The diff is a routine documentation refresh: it bumps the example Airflow extras link/version to 3.3.1 and updates sample requirements pins to current library releases, while removing obsolete boto 2.x/botocore entries. No CVE, advisory, vulnerability, credential, IAM, encryption or exposure change is referenced. The only retained security-adjacent note is the pre-existing guidance to pin exact versions with '==' to avoid unintended/conflicting package resolution, which is dependency-hygiene advice rather than new security documentation or a fix for a specific incident.

Evidence

+  4. **Apache Airflow packages**. Add the [package extras](http://airflow.apache.org/docs/apache-airflow/3.3.1/extra-packages-ref.html) and the version (`==`). This helps to prevent packages of the same name, but different version, from being installed on your environment.

Diff

diff --git a/mwaa/latest/userguide/best-practices-dependencies.md b/mwaa/latest/userguide/best-practices-dependencies.md
index bbc4f29dc..878d3c353 100644
--- a//mwaa/latest/userguide/best-practices-dependencies.md
+++ b//mwaa/latest/userguide/best-practices-dependencies.md
@@ -72 +72 @@ Apache Airflow v3
-In the following example, replace `{environment-version}` with your environment's version number, and `{Python-version}` with the version of Python that's compatible with your environment. 
+In the following example, replace `{Airflow-version}` with your environment's version number, and `{Python-version}` with the version of Python that's compatible with your environment. 
@@ -80 +80 @@ If the constraints file determines that `xyz==1.0` package is not compatible wit
-  4. **Apache Airflow packages**. Add the [package extras](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) and the version (`==`). This helps to prevent packages of the same name, but different version, from being installed on your environment.
+  4. **Apache Airflow packages**. Add the [package extras](http://airflow.apache.org/docs/apache-airflow/3.3.1/extra-packages-ref.html) and the version (`==`). This helps to prevent packages of the same name, but different version, from being installed on your environment.
@@ -82 +82 @@ If the constraints file determines that `xyz==1.0` package is not compatible wit
-        apache-airflow[package-extra]==2.5.1
+        apache-airflow[package-extra]==3.3.1
@@ -90 +90 @@ If the constraints file determines that `xyz==1.0` package is not compatible wit
-This example is provided for demonstration purposes. The boto and psycopg2-binary libraries are included with the base install for Apache Airflow v3 and don't need to be specified in a `requirements.txt` file.
+This example is provided for demonstration purposes. The psycopg2-binary library is included with the base install for Apache Airflow v3 and doesn't need to be specified in a `requirements.txt` file.
@@ -92,4 +92,3 @@ This example is provided for demonstration purposes. The boto and psycopg2-binar
-        boto3==1.17.54
-    boto==2.49.0
-    botocore==1.20.54
-    psycopg2-binary==2.8.6
+        boto3==1.43.56
+    botocore==1.43.56
+    psycopg2-binary==2.9.12
@@ -113 +112 @@ Beginning with Apache Airflow v2.7.2, your requirements file must include a `--c
-In the following example, replace `{environment-version}` with your environment's version number, and `{Python-version}` with the version of Python that's compatible with your environment.
+In the following example, replace `{Airflow-version}` with your environment's version number, and `{Python-version}` with the version of Python that's compatible with your environment.
@@ -151 +150 @@ A Python wheel is a package format designed to ship libraries with compiled arti
-  * **More resilience** – With externally hosted libraries, downstream requirements can change, resulting in version incompatibility between containers on a Amazon MWAA environment. By not depending on an external source for dependencies, every container on has have the same libraries regardless of when the each container is instantiated.
+  * **More resilience** – With externally hosted libraries, downstream requirements can change, resulting in version incompatibility between containers on a Amazon MWAA environment. By not depending on an external source for dependencies, every container will have the same libraries regardless of when each container is instantiated.
@@ -238 +237 @@ If you have a **Private network** environment using Apache Airflow v2.2.2 or lat
-     bash_command=f"mkdir /tmp/whls;pip3 download -r /usr/local/airflow/requirements/requirements.txt -d /tmp/whls;zip -j /tmp/plugins.zip /tmp/whls/*;aws s3 cp /tmp/plugins.zip s3://amzn-s3-demo-bucket/{S3_KEY}"
+     bash_command=f"mkdir /tmp/whls;pip3 download -r /usr/local/airflow/requirements/requirements.txt -d /tmp/whls;zip -j /tmp/plugins.zip /tmp/whls/*;aws s3 cp /tmp/plugins.zip s3://{S3_BUCKET}/{S3_KEY}"