Skip to content

Commit 6f0a94a

Browse files
authored
chore: add patterns for fips endpoint heuristics (#3929)
1 parent fc63c73 commit 6f0a94a

File tree

3 files changed

+70
-143
lines changed

3 files changed

+70
-143
lines changed

lib/region_config.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ function generateRegionPrefix(region) {
55
if (!region) return null;
66
if (isFipsRegion(region)) {
77
if (isFipsCnRegion(region)) return 'fips-cn-*';
8+
if (isFipsUsGovRegion(region)) return 'fips-us-gov-*';
89
if (region.startsWith('fips-accesspoint-')) return 'fips-accesspoint-*';
910
return 'fips-*';
1011
}
@@ -105,6 +106,14 @@ function isFipsRegion(region) {
105106
return region && (region.startsWith('fips-') || region.endsWith('-fips'));
106107
}
107108

109+
function isFipsUsGovRegion(region) {
110+
return (
111+
region &&
112+
region.startsWith('fips-us-gov-') ||
113+
(region.startsWith('us-gov-') && region.endsWith('-fips'))
114+
);
115+
}
116+
108117
function isFipsCnRegion(region) {
109118
return (
110119
region &&

lib/region_config_data.json

Lines changed: 60 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
"*/*": {
44
"endpoint": "{service}.{region}.amazonaws.com"
55
},
6-
"fips-*/*": {
7-
"endpoint": "{service}-fips.{region}.amazonaws.com"
8-
},
6+
"fips-*/*": "fipsStandard",
7+
"fips-us-gov-*/*": "fipsStandard",
98
"fips-cn-*/*": {
109
"endpoint": "{service}-fips.{region}.amazonaws.com.cn"
1110
},
@@ -69,157 +68,52 @@
6968
"signatureVersion": "v2"
7069
},
7170

72-
"fips-*/api.ecr": {
73-
"endpoint": "ecr-fips.{region}.amazonaws.com"
74-
},
75-
"fips-*/api.sagemaker": {
76-
"endpoint": "api-fips.sagemaker.{region}.amazonaws.com"
77-
},
78-
"fips-*/batch": {
79-
"endpoint": "fips.batch.{region}.amazonaws.com"
80-
},
81-
"fips-*/eks": {
82-
"endpoint": "fips.eks.{region}.amazonaws.com"
83-
},
84-
"fips-*/models.lex": {
85-
"endpoint": "models-fips.lex.{region}.amazonaws.com"
86-
},
87-
"fips-*/runtime.lex": {
88-
"endpoint": "runtime-fips.lex.{region}.amazonaws.com"
89-
},
71+
"fips-*/api.ecr": "fips.api.ecr",
72+
"fips-us-gov-*/api.ecr": "fips.api.ecr",
73+
"fips-*/api.sagemaker": "fips.api.sagemaker",
74+
"fips-us-gov-*/api.sagemaker": "fips.api.sagemaker",
75+
"fips-*/batch": "fipsDotPrefix",
76+
"fips-*/eks": "fipsDotPrefix",
77+
"fips-*/models.lex": "fips.models.lex",
78+
"fips-us-gov-*/models.lex": "fips.models.lex",
79+
"fips-*/runtime.lex": "fips.runtime.lex",
80+
"fips-us-gov-*/runtime.lex": "fips.runtime.lex",
9081
"fips-*/runtime.sagemaker": {
9182
"endpoint": "runtime-fips.sagemaker.{region}.amazonaws.com"
9283
},
9384
"fips-*/streams.dynamodb": {
9485
"endpoint": "dynamodb-fips.{region}.amazonaws.com"
9586
},
96-
"fips-*/route53": {
97-
"endpoint": "route53-fips.amazonaws.com"
98-
},
99-
"fips-*/transcribe": {
100-
"endpoint": "fips.transcribe.{region}.amazonaws.com"
101-
},
102-
"fips-*/waf": {
103-
"endpoint": "waf-fips.amazonaws.com"
104-
},
87+
"fips-*/route53": "fipsWithoutRegion",
88+
"fips-*/transcribe": "fipsDotPrefix",
89+
"fips-us-gov-*/transcribe": "fipsDotPrefix",
90+
"fips-*/waf": "fipsWithoutRegion",
10591
"fips-accesspoint-*/*": {
10692
"endpoint": "{service}-accesspoint-fips.{region}.amazonaws.com"
10793
},
108-
"fips-us-gov-east-1/acm-pca": {
109-
"endpoint": "acm-pca.{region}.amazonaws.com"
110-
},
111-
"fips-us-gov-west-1/acm-pca": {
112-
"endpoint": "acm-pca.{region}.amazonaws.com"
113-
},
114-
"fips-us-gov-east-1/batch": {
115-
"endpoint": "batch.{region}.amazonaws.com"
116-
},
117-
"fips-us-gov-west-1/batch": {
118-
"endpoint": "batch.{region}.amazonaws.com"
119-
},
120-
"fips-us-gov-east-1/config": {
121-
"endpoint": "config.{region}.amazonaws.com"
122-
},
123-
"fips-us-gov-west-1/config": {
124-
"endpoint": "config.{region}.amazonaws.com"
125-
},
126-
"fips-us-gov-east-1/eks": {
127-
"endpoint": "eks.{region}.amazonaws.com"
128-
},
129-
"fips-us-gov-west-1/eks": {
130-
"endpoint": "eks.{region}.amazonaws.com"
131-
},
132-
"fips-us-gov-east-1/elasticmapreduce": {
133-
"endpoint": "elasticmapreduce.{region}.amazonaws.com"
134-
},
135-
"fips-us-gov-west-1/elasticmapreduce": {
136-
"endpoint": "elasticmapreduce.{region}.amazonaws.com"
137-
},
138-
"fips-us-gov-east-1/identitystore": {
139-
"endpoint": "identitystore.{region}.amazonaws.com"
140-
},
141-
"fips-us-gov-west-1/identitystore": {
142-
"endpoint": "identitystore.{region}.amazonaws.com"
143-
},
144-
"us-gov-east-1-fips/dynamodb": {
145-
"endpoint": "dynamodb.{region}.amazonaws.com"
146-
},
147-
"us-gov-west-1-fips/dynamodb": {
148-
"endpoint": "dynamodb.{region}.amazonaws.com"
149-
},
150-
"fips-us-gov-east-1/elasticloadbalancing": {
151-
"endpoint": "elasticloadbalancing.{region}.amazonaws.com"
152-
},
153-
"fips-us-gov-west-1/elasticloadbalancing": {
154-
"endpoint": "elasticloadbalancing.{region}.amazonaws.com"
155-
},
156-
"us-gov-east-1-fips/guardduty": {
157-
"endpoint": "guardduty.{region}.amazonaws.com"
158-
},
159-
"us-gov-west-1-fips/guardduty": {
160-
"endpoint": "guardduty.{region}.amazonaws.com"
161-
},
162-
"fips-us-gov-east-1/monitoring": {
163-
"endpoint": "monitoring.{region}.amazonaws.com"
164-
},
165-
"fips-us-gov-west-1/monitoring": {
166-
"endpoint": "monitoring.{region}.amazonaws.com"
167-
},
168-
"fips-aws-us-gov-global/organizations": {
169-
"endpoint": "organizations.{region}.amazonaws.com"
170-
},
171-
"fips-us-gov-east-1/resource-groups": {
172-
"endpoint": "resource-groups.{region}.amazonaws.com"
173-
},
174-
"fips-us-gov-west-1/resource-groups": {
175-
"endpoint": "resource-groups.{region}.amazonaws.com"
176-
},
94+
"fips-us-gov-*/acm-pca": "fipsWithServiceOnly",
95+
"fips-us-gov-*/batch": "fipsWithServiceOnly",
96+
"fips-us-gov-*/config": "fipsWithServiceOnly",
97+
"fips-us-gov-*/eks": "fipsWithServiceOnly",
98+
"fips-us-gov-*/elasticmapreduce": "fipsWithServiceOnly",
99+
"fips-us-gov-*/identitystore": "fipsWithServiceOnly",
100+
"fips-us-gov-*/dynamodb": "fipsWithServiceOnly",
101+
"fips-us-gov-*/elasticloadbalancing": "fipsWithServiceOnly",
102+
"fips-us-gov-*/guardduty": "fipsWithServiceOnly",
103+
"fips-us-gov-*/monitoring": "fipsWithServiceOnly",
104+
"fips-aws-us-gov-global/organizations": "fipsWithServiceOnly",
105+
"fips-us-gov-*/resource-groups": "fipsWithServiceOnly",
177106
"fips-aws-us-gov-global/route53": {
178107
"endpoint": "route53.us-gov.amazonaws.com"
179108
},
180-
"us-gov-east-1-fips/runtime.sagemaker": {
181-
"endpoint": "runtime.sagemaker.{region}.amazonaws.com"
182-
},
183-
"us-gov-west-1-fips/runtime.sagemaker": {
184-
"endpoint": "runtime.sagemaker.{region}.amazonaws.com"
185-
},
186-
"fips-us-gov-east-1/servicecatalog-appregistry": {
187-
"endpoint": "servicecatalog-appregistry.{region}.amazonaws.com"
188-
},
189-
"fips-us-gov-west-1/servicecatalog-appregistry": {
190-
"endpoint": "servicecatalog-appregistry.{region}.amazonaws.com"
191-
},
192-
"fips-us-gov-east-1/servicequotas": {
193-
"endpoint": "servicequotas.{region}.amazonaws.com"
194-
},
195-
"fips-us-gov-west-1/servicequotas": {
196-
"endpoint": "servicequotas.{region}.amazonaws.com"
197-
},
198-
"fips-us-gov-east-1/ssm": {
199-
"endpoint": "ssm.{region}.amazonaws.com"
200-
},
201-
"fips-us-gov-west-1/ssm": {
202-
"endpoint": "ssm.{region}.amazonaws.com"
203-
},
204-
"us-gov-east-1-fips/sts": {
205-
"endpoint": "sts.{region}.amazonaws.com"
206-
},
207-
"us-gov-west-1-fips/sts": {
208-
"endpoint": "sts.{region}.amazonaws.com"
209-
},
210-
"fips-us-gov-west-1/states": {
211-
"endpoint": "states.{region}.amazonaws.com"
212-
},
213-
"fips-us-gov-east-1/support": {
214-
"endpoint": "support.{region}.amazonaws.com"
215-
},
216-
"fips-us-gov-west-1/support": {
217-
"endpoint": "support.{region}.amazonaws.com"
218-
},
219-
"us-gov-east-1-fips/streams.dynamodb": {
220-
"endpoint": "dynamodb.{region}.amazonaws.com"
221-
},
222-
"us-gov-west-1-fips/streams.dynamodb": {
109+
"fips-us-gov-*/runtime.sagemaker": "fipsWithServiceOnly",
110+
"fips-us-gov-*/servicecatalog-appregistry": "fipsWithServiceOnly",
111+
"fips-us-gov-*/servicequotas": "fipsWithServiceOnly",
112+
"fips-us-gov-*/ssm": "fipsWithServiceOnly",
113+
"fips-us-gov-*/sts": "fipsWithServiceOnly",
114+
"fips-us-gov-west-1/states": "fipsWithServiceOnly",
115+
"fips-us-gov-*/support": "fipsWithServiceOnly",
116+
"fips-us-gov-*/streams.dynamodb": {
223117
"endpoint": "dynamodb.{region}.amazonaws.com"
224118
},
225119
"fips-us-iso-east-1/elasticfilesystem": {
@@ -241,6 +135,30 @@
241135
"s3signature": {
242136
"endpoint": "{service}.{region}.amazonaws.com",
243137
"signatureVersion": "s3"
138+
},
139+
"fipsStandard": {
140+
"endpoint": "{service}-fips.{region}.amazonaws.com"
141+
},
142+
"fipsDotPrefix": {
143+
"endpoint": "fips.{service}.{region}.amazonaws.com"
144+
},
145+
"fipsWithoutRegion": {
146+
"endpoint": "{service}-fips.amazonaws.com"
147+
},
148+
"fips.api.ecr": {
149+
"endpoint": "ecr-fips.{region}.amazonaws.com"
150+
},
151+
"fips.api.sagemaker": {
152+
"endpoint": "api-fips.sagemaker.{region}.amazonaws.com"
153+
},
154+
"fips.models.lex": {
155+
"endpoint": "models-fips.lex.{region}.amazonaws.com"
156+
},
157+
"fips.runtime.lex": {
158+
"endpoint": "runtime-fips.lex.{region}.amazonaws.com"
159+
},
160+
"fipsWithServiceOnly": {
161+
"endpoint": "{service}.{region}.amazonaws.com"
244162
}
245163
}
246164
}

scripts/region-checker/allowlist.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ var allowlist = {
2828
112
2929
],
3030
'/region_config.js': [
31-
118
31+
127
3232
],
3333
'/request.js': [
3434
318,

0 commit comments

Comments
 (0)