Skip to content

Commit a2b5aa3

Browse files
retadreamer-89
andauthored
Getting security exception due to access denied 'java.lang.RuntimePermission' 'accessDeclaredMembers' when trying to get snapshot with S3 IRSA (#4469) (#4523)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io> Signed-off-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Suraj Singh <surajrider@gmail.com> (cherry picked from commit 8366ea3) Signed-off-by: Andriy Redko <andriy.redko@aiven.io> Signed-off-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Suraj Singh <surajrider@gmail.com>
1 parent 8571120 commit a2b5aa3

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

  • plugins/repository-s3/src/main/java/org/opensearch/repositories/s3

plugins/repository-s3/src/main/java/org/opensearch/repositories/s3/S3Service.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -305,21 +305,28 @@ static AWSCredentialsProvider buildCredentials(Logger logger, S3ClientSettings c
305305
}
306306

307307
if (irsaCredentials.getIdentityTokenFile() == null) {
308-
return new PrivilegedSTSAssumeRoleSessionCredentialsProvider<>(
309-
securityTokenService,
308+
final STSAssumeRoleSessionCredentialsProvider.Builder stsCredentialsProviderBuilder =
310309
new STSAssumeRoleSessionCredentialsProvider.Builder(irsaCredentials.getRoleArn(), irsaCredentials.getRoleSessionName())
311-
.withStsClient(securityTokenService)
312-
.build()
310+
.withStsClient(securityTokenService);
311+
312+
final STSAssumeRoleSessionCredentialsProvider stsCredentialsProvider = SocketAccess.doPrivileged(
313+
stsCredentialsProviderBuilder::build
313314
);
315+
316+
return new PrivilegedSTSAssumeRoleSessionCredentialsProvider<>(securityTokenService, stsCredentialsProvider);
314317
} else {
315-
return new PrivilegedSTSAssumeRoleSessionCredentialsProvider<>(
316-
securityTokenService,
318+
final STSAssumeRoleWithWebIdentitySessionCredentialsProvider.Builder stsCredentialsProviderBuilder =
317319
new STSAssumeRoleWithWebIdentitySessionCredentialsProvider.Builder(
318320
irsaCredentials.getRoleArn(),
319321
irsaCredentials.getRoleSessionName(),
320322
irsaCredentials.getIdentityTokenFile()
321-
).withStsClient(securityTokenService).build()
323+
).withStsClient(securityTokenService);
324+
325+
final STSAssumeRoleWithWebIdentitySessionCredentialsProvider stsCredentialsProvider = SocketAccess.doPrivileged(
326+
stsCredentialsProviderBuilder::build
322327
);
328+
329+
return new PrivilegedSTSAssumeRoleSessionCredentialsProvider<>(securityTokenService, stsCredentialsProvider);
323330
}
324331
} else if (basicCredentials != null) {
325332
logger.debug("Using basic key/secret credentials");

0 commit comments

Comments
 (0)