diff --git a/app/s3_client/__init__.py b/app/s3_client/__init__.py index 4b64f0f5c..c7b707944 100644 --- a/app/s3_client/__init__.py +++ b/app/s3_client/__init__.py @@ -1,7 +1,18 @@ import botocore from boto3 import Session +from botocore.config import Config from flask import current_app +AWS_CLIENT_CONFIG = Config( + # This config is required to enable S3 to connect to FIPS-enabled + # endpoints. See https://aws.amazon.com/compliance/fips/ for more + # information. + s3={ + 'addressing_style': 'virtual', + }, + use_fips_endpoint=True +) + def get_s3_object( bucket_name, @@ -11,7 +22,12 @@ def get_s3_object( region, ): # To inspect contents: obj.get()['Body'].read().decode('utf-8') - session = Session(aws_access_key_id=access_key, aws_secret_access_key=secret_key, region_name=region) + session = Session( + aws_access_key_id=access_key, + aws_secret_access_key=secret_key, + region_name=region, + config=AWS_CLIENT_CONFIG + ) s3 = session.resource('s3') obj = s3.Object(bucket_name, filename) return obj diff --git a/deploy-config/egress_proxy/notify-admin-demo.allow.acl b/deploy-config/egress_proxy/notify-admin-demo.allow.acl index 4718f99e7..9e85d0426 100644 --- a/deploy-config/egress_proxy/notify-admin-demo.allow.acl +++ b/deploy-config/egress_proxy/notify-admin-demo.allow.acl @@ -1,2 +1,6 @@ +s3-fips.us-east-1.amazonaws.com +s3-fips.us-east-2.amazonaws.com +s3-fips.us-west-1.amazonaws.com +s3-fips.us-west-2.amazonaws.com gov-collector.newrelic.com egress-proxy-notify-admin-demo.apps.internal diff --git a/deploy-config/egress_proxy/notify-admin-production.allow.acl b/deploy-config/egress_proxy/notify-admin-production.allow.acl index 2173a6b4b..0e791d984 100644 --- a/deploy-config/egress_proxy/notify-admin-production.allow.acl +++ b/deploy-config/egress_proxy/notify-admin-production.allow.acl @@ -1,2 +1,4 @@ +s3-fips.us-gov-east-1.amazonaws.com +s3-fips.us-gov-west-1.amazonaws.com gov-collector.newrelic.com egress-proxy-notify-admin-production.apps.internal diff --git a/deploy-config/egress_proxy/notify-admin-staging.allow.acl b/deploy-config/egress_proxy/notify-admin-staging.allow.acl index d329f111d..47d49fe1a 100644 --- a/deploy-config/egress_proxy/notify-admin-staging.allow.acl +++ b/deploy-config/egress_proxy/notify-admin-staging.allow.acl @@ -1,2 +1,6 @@ +s3-fips.us-east-1.amazonaws.com +s3-fips.us-east-2.amazonaws.com +s3-fips.us-west-1.amazonaws.com +s3-fips.us-west-2.amazonaws.com gov-collector.newrelic.com egress-proxy-notify-admin-staging.apps.internal