Skip to content

Commit 05e63dc

Browse files
committed
Use AnonymousAWSCredentials for LocalStack to bypass credential validation
1 parent e712d3d commit 05e63dc

2 files changed

Lines changed: 27 additions & 9 deletions

File tree

tests/SourceFlow.Cloud.AWS.Tests/TestHelpers/AwsTestConfiguration.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,13 @@ public async Task<bool> IsSqsAvailableAsync(TimeSpan timeout)
110110
if (UseLocalStack)
111111
{
112112
config.ServiceURL = LocalStackEndpoint;
113+
config.AuthenticationRegion = Region.SystemName;
113114
}
114115

115-
var credentials = new BasicAWSCredentials(AccessKey, SecretKey);
116+
// Use AnonymousAWSCredentials for LocalStack to bypass credential validation
117+
var credentials = UseLocalStack
118+
? new Amazon.Runtime.AnonymousAWSCredentials()
119+
: new BasicAWSCredentials(AccessKey, SecretKey);
116120
using var client = new AmazonSQSClient(credentials, config);
117121

118122
// Try to list queues to test connectivity
@@ -161,9 +165,13 @@ public async Task<bool> IsSnsAvailableAsync(TimeSpan timeout)
161165
if (UseLocalStack)
162166
{
163167
config.ServiceURL = LocalStackEndpoint;
168+
config.AuthenticationRegion = Region.SystemName;
164169
}
165170

166-
var credentials = new BasicAWSCredentials(AccessKey, SecretKey);
171+
// Use AnonymousAWSCredentials for LocalStack to bypass credential validation
172+
var credentials = UseLocalStack
173+
? new Amazon.Runtime.AnonymousAWSCredentials()
174+
: new BasicAWSCredentials(AccessKey, SecretKey);
167175
using var client = new AmazonSimpleNotificationServiceClient(credentials, config);
168176

169177
// Try to list topics to test connectivity
@@ -212,9 +220,13 @@ public async Task<bool> IsKmsAvailableAsync(TimeSpan timeout)
212220
if (UseLocalStack)
213221
{
214222
config.ServiceURL = LocalStackEndpoint;
223+
config.AuthenticationRegion = Region.SystemName;
215224
}
216225

217-
var credentials = new BasicAWSCredentials(AccessKey, SecretKey);
226+
// Use AnonymousAWSCredentials for LocalStack to bypass credential validation
227+
var credentials = UseLocalStack
228+
? new Amazon.Runtime.AnonymousAWSCredentials()
229+
: new BasicAWSCredentials(AccessKey, SecretKey);
218230
using var client = new AmazonKeyManagementServiceClient(credentials, config);
219231

220232
// Try to list keys to test connectivity

tests/SourceFlow.Cloud.AWS.Tests/TestHelpers/LocalStackTestFixture.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,32 +143,38 @@ public async Task InitializeAsync()
143143
}
144144

145145
// Create AWS clients configured for LocalStack
146+
// Use AnonymousAWSCredentials to bypass credential validation in LocalStack
147+
var credentials = new Amazon.Runtime.AnonymousAWSCredentials();
148+
146149
var config = new Amazon.SQS.AmazonSQSConfig
147150
{
148151
ServiceURL = LocalStackEndpoint,
149152
UseHttp = true,
150-
RegionEndpoint = _configuration.Region
153+
RegionEndpoint = _configuration.Region,
154+
AuthenticationRegion = _configuration.Region.SystemName
151155
};
152156

153-
SqsClient = new AmazonSQSClient(_configuration.AccessKey, _configuration.SecretKey, config);
157+
SqsClient = new AmazonSQSClient(credentials, config);
154158

155159
var snsConfig = new Amazon.SimpleNotificationService.AmazonSimpleNotificationServiceConfig
156160
{
157161
ServiceURL = LocalStackEndpoint,
158162
UseHttp = true,
159-
RegionEndpoint = _configuration.Region
163+
RegionEndpoint = _configuration.Region,
164+
AuthenticationRegion = _configuration.Region.SystemName
160165
};
161166

162-
SnsClient = new AmazonSimpleNotificationServiceClient(_configuration.AccessKey, _configuration.SecretKey, snsConfig);
167+
SnsClient = new AmazonSimpleNotificationServiceClient(credentials, snsConfig);
163168

164169
var kmsConfig = new Amazon.KeyManagementService.AmazonKeyManagementServiceConfig
165170
{
166171
ServiceURL = LocalStackEndpoint,
167172
UseHttp = true,
168-
RegionEndpoint = _configuration.Region
173+
RegionEndpoint = _configuration.Region,
174+
AuthenticationRegion = _configuration.Region.SystemName
169175
};
170176

171-
KmsClient = new AmazonKeyManagementServiceClient(_configuration.AccessKey, _configuration.SecretKey, kmsConfig);
177+
KmsClient = new AmazonKeyManagementServiceClient(credentials, kmsConfig);
172178

173179
// Create test resources
174180
await CreateTestResourcesAsync();

0 commit comments

Comments
 (0)