AWS mwaa: MWAA dependency guidance refreshed to Airflow 3.3.1 and newer library pins
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}"