@@ -132,11 +132,16 @@ var s3util = {
132
132
/**
133
133
* Validate region field in ARN supplied in Bucket parameter is a valid region
134
134
*/
135
- validateArnRegion : function validateArnRegion ( req ) {
135
+ validateArnRegion : function validateArnRegion ( req , options ) {
136
+ if ( options === undefined ) {
137
+ options = { } ;
138
+ }
139
+
136
140
var useArnRegion = s3util . loadUseArnRegionConfig ( req ) ;
137
141
var regionFromArn = req . _parsedArn . region ;
138
142
var clientRegion = req . service . config . region ;
139
143
var useFipsEndpoint = req . service . config . useFipsEndpoint ;
144
+ var allowFipsEndpoint = options . allowFipsEndpoint || false ;
140
145
141
146
if ( ! regionFromArn ) {
142
147
throw AWS . util . error ( new Error ( ) , {
@@ -145,16 +150,20 @@ var s3util = {
145
150
} ) ;
146
151
}
147
152
148
- if (
149
- useFipsEndpoint ||
150
- regionFromArn . indexOf ( 'fips' ) >= 0
151
- ) {
153
+ if ( useFipsEndpoint && ! allowFipsEndpoint ) {
152
154
throw AWS . util . error ( new Error ( ) , {
153
155
code : 'InvalidConfiguration' ,
154
156
message : 'ARN endpoint is not compatible with FIPS region'
155
157
} ) ;
156
158
}
157
159
160
+ if ( regionFromArn . indexOf ( 'fips' ) >= 0 ) {
161
+ throw AWS . util . error ( new Error ( ) , {
162
+ code : 'InvalidConfiguration' ,
163
+ message : 'FIPS region not allowed in ARN'
164
+ } ) ;
165
+ }
166
+
158
167
if ( ! useArnRegion && regionFromArn !== clientRegion ) {
159
168
throw AWS . util . error ( new Error ( ) , {
160
169
code : 'InvalidConfiguration' ,
0 commit comments