Skip to content

Commit 6e23106

Browse files
authored
Move FIPS rules to a separate section in region_config (#3948)
1 parent 549ab32 commit 6e23106

File tree

4 files changed

+56
-64
lines changed

4 files changed

+56
-64
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "feature",
3+
"category": "endpoint",
4+
"description": "Move FIPS rules to a separate section in region_config"
5+
}

lib/region_config.js

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ var regionConfig = require('./region_config_data.json');
44
function generateRegionPrefix(region) {
55
if (!region) return null;
66
if (isFipsRegion(region)) {
7-
if (isFipsCnRegion(region)) return 'fips-cn-*';
8-
if (isFipsUsGovRegion(region)) return 'fips-us-gov-*';
9-
return 'fips-*';
7+
region = getRealRegion(region);
108
}
119

1210
var parts = region.split('-');
@@ -42,12 +40,14 @@ function applyConfig(service, config) {
4240

4341
function configureEndpoint(service) {
4442
var keys = derivedKeys(service);
43+
var region = service.config.region;
4544
for (var i = 0; i < keys.length; i++) {
4645
var key = keys[i];
4746
if (!key) continue;
4847

49-
if (Object.prototype.hasOwnProperty.call(regionConfig.rules, key)) {
50-
var config = regionConfig.rules[key];
48+
var rules = isFipsRegion(region) ? regionConfig.fipsRules : regionConfig.rules;
49+
if (Object.prototype.hasOwnProperty.call(rules, key)) {
50+
var config = rules[key];
5151
if (typeof config === 'string') {
5252
config = regionConfig.patterns[config];
5353
}
@@ -105,22 +105,6 @@ function isFipsRegion(region) {
105105
return region && (region.startsWith('fips-') || region.endsWith('-fips'));
106106
}
107107

108-
function isFipsUsGovRegion(region) {
109-
return (
110-
region &&
111-
region.startsWith('fips-us-gov-') ||
112-
(region.startsWith('us-gov-') && region.endsWith('-fips'))
113-
);
114-
}
115-
116-
function isFipsCnRegion(region) {
117-
return (
118-
region &&
119-
region.startsWith('fips-cn-') ||
120-
(region.startsWith('cn-') && region.endsWith('-fips'))
121-
);
122-
}
123-
124108
function getRealRegion(region) {
125109
return isFipsRegion(region)
126110
? ['fips-aws-global', 'aws-fips'].includes(region)

lib/region_config_data.json

Lines changed: 45 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@
33
"*/*": {
44
"endpoint": "{service}.{region}.amazonaws.com"
55
},
6-
"fips-*/*": "fipsStandard",
7-
"fips-us-gov-*/*": "fipsStandard",
8-
"fips-cn-*/*": {
9-
"endpoint": "{service}-fips.{region}.amazonaws.com.cn"
10-
},
116
"cn-*/*": {
127
"endpoint": "{service}.{region}.amazonaws.com.cn"
138
},
@@ -66,49 +61,57 @@
6661
"*/sdb": {
6762
"endpoint": "{service}.{region}.amazonaws.com",
6863
"signatureVersion": "v2"
69-
},
64+
}
65+
},
7066

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",
81-
"fips-*/runtime.sagemaker": {
82-
"endpoint": "runtime-fips.sagemaker.{region}.amazonaws.com"
67+
"fipsRules": {
68+
"*/*": "fipsStandard",
69+
"us-gov-*/*": "fipsStandard",
70+
"cn-*/*": {
71+
"endpoint": "{service}-fips.{region}.amazonaws.com.cn"
8372
},
84-
"fips-*/route53": "fipsWithoutRegion",
85-
"fips-*/transcribe": "fipsDotPrefix",
86-
"fips-us-gov-*/transcribe": "fipsDotPrefix",
87-
"fips-*/waf": "fipsWithoutRegion",
88-
"fips-us-gov-*/acm-pca": "fipsWithServiceOnly",
89-
"fips-us-gov-*/batch": "fipsWithServiceOnly",
90-
"fips-us-gov-*/config": "fipsWithServiceOnly",
91-
"fips-us-gov-*/eks": "fipsWithServiceOnly",
92-
"fips-us-gov-*/elasticmapreduce": "fipsWithServiceOnly",
93-
"fips-us-gov-*/identitystore": "fipsWithServiceOnly",
94-
"fips-us-gov-*/dynamodb": "fipsWithServiceOnly",
95-
"fips-us-gov-*/elasticloadbalancing": "fipsWithServiceOnly",
96-
"fips-us-gov-*/guardduty": "fipsWithServiceOnly",
97-
"fips-us-gov-*/monitoring": "fipsWithServiceOnly",
98-
"fips-aws-us-gov-global/organizations": "fipsWithServiceOnly",
99-
"fips-us-gov-*/resource-groups": "fipsWithServiceOnly",
100-
"fips-aws-us-gov-global/route53": {
101-
"endpoint": "route53.us-gov.amazonaws.com"
73+
"*/api.ecr": "fips.api.ecr",
74+
"*/api.sagemaker": "fips.api.sagemaker",
75+
"*/batch": "fipsDotPrefix",
76+
"*/eks": "fipsDotPrefix",
77+
"*/models.lex": "fips.models.lex",
78+
"*/runtime.lex": "fips.runtime.lex",
79+
"*/runtime.sagemaker": {
80+
"endpoint": "runtime-fips.sagemaker.{region}.amazonaws.com"
10281
},
103-
"fips-us-gov-*/runtime.sagemaker": "fipsWithServiceOnly",
104-
"fips-us-gov-*/servicecatalog-appregistry": "fipsWithServiceOnly",
105-
"fips-us-gov-*/servicequotas": "fipsWithServiceOnly",
106-
"fips-us-gov-*/ssm": "fipsWithServiceOnly",
107-
"fips-us-gov-*/sts": "fipsWithServiceOnly",
82+
"*/route53": "fipsWithoutRegion",
83+
"*/transcribe": "fipsDotPrefix",
84+
"*/waf": "fipsWithoutRegion",
85+
86+
"us-gov-*/transcribe": "fipsDotPrefix",
87+
"us-gov-*/api.ecr": "fips.api.ecr",
88+
"us-gov-*/api.sagemaker": "fips.api.sagemaker",
89+
"us-gov-*/models.lex": "fips.models.lex",
90+
"us-gov-*/runtime.lex": "fips.runtime.lex",
91+
"us-gov-*/acm-pca": "fipsWithServiceOnly",
92+
"us-gov-*/batch": "fipsWithServiceOnly",
93+
"us-gov-*/config": "fipsWithServiceOnly",
94+
"us-gov-*/eks": "fipsWithServiceOnly",
95+
"us-gov-*/elasticmapreduce": "fipsWithServiceOnly",
96+
"us-gov-*/identitystore": "fipsWithServiceOnly",
97+
"us-gov-*/dynamodb": "fipsWithServiceOnly",
98+
"us-gov-*/elasticloadbalancing": "fipsWithServiceOnly",
99+
"us-gov-*/guardduty": "fipsWithServiceOnly",
100+
"us-gov-*/monitoring": "fipsWithServiceOnly",
101+
"us-gov-*/resource-groups": "fipsWithServiceOnly",
102+
"us-gov-*/runtime.sagemaker": "fipsWithServiceOnly",
103+
"us-gov-*/servicecatalog-appregistry": "fipsWithServiceOnly",
104+
"us-gov-*/servicequotas": "fipsWithServiceOnly",
105+
"us-gov-*/ssm": "fipsWithServiceOnly",
106+
"us-gov-*/sts": "fipsWithServiceOnly",
107+
"us-gov-*/support": "fipsWithServiceOnly",
108108
"fips-us-gov-west-1/states": "fipsWithServiceOnly",
109-
"fips-us-gov-*/support": "fipsWithServiceOnly",
110109
"fips-us-iso-east-1/elasticfilesystem": {
111110
"endpoint": "elasticfilesystem-fips.{region}.c2s.ic.gov"
111+
},
112+
"fips-aws-us-gov-global/organizations": "fipsWithServiceOnly",
113+
"fips-aws-us-gov-global/route53": {
114+
"endpoint": "route53.us-gov.amazonaws.com"
112115
}
113116
},
114117

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-
126
31+
110
3232
],
3333
'/request.js': [
3434
318,

0 commit comments

Comments
 (0)