internal AccessCredentials GetAccessCredentials(string tokenFile) { this.Validate(); Uri url = this.CustomEndPoint; string urlStr = url.Authority; if (url == null || string.IsNullOrWhiteSpace(urlStr)) { string region = Environment.GetEnvironmentVariable("AWS_REGION"); urlStr = (region == null)?"https://sts.amazonaws.com":"https://sts." + region + ".amazonaws.com"; url = new Uri(urlStr); } ClientProvider provider = new WebIdentityProvider() .WithJWTSupplier(() => { string tokenContents = File.ReadAllText(tokenFile); return(new JsonWebToken(tokenContents, 0)); }) .WithSTSEndpoint(url) .WithDurationInSeconds(null) .WithPolicy(null) .WithRoleARN(Environment.GetEnvironmentVariable("AWS_ROLE_ARN")) .WithRoleSessionName(Environment.GetEnvironmentVariable("AWS_ROLE_SESSION_NAME")); this.Credentials = provider.GetCredentials(); return(this.Credentials); }
public override AccessCredentials GetCredentials() { this.Validate(); Uri url = this.CustomEndPoint; if (this.CustomEndPoint == null) { string region = Environment.GetEnvironmentVariable("AWS_REGION"); if (string.IsNullOrWhiteSpace(region)) { url = RequestUtil.MakeTargetURL("sts.amazonaws.com", true); } else { url = RequestUtil.MakeTargetURL("sts." + region + ".amazonaws.com", true); } } ClientProvider provider = new WebIdentityProvider() .WithSTSEndpoint(url) .WithRoleAction("AssumeRoleWithWebIdentity") .WithDurationInSeconds(null) .WithPolicy(null) .WithRoleARN(Environment.GetEnvironmentVariable("AWS_ROLE_ARN")) .WithRoleSessionName(Environment.GetEnvironmentVariable("AWS_ROLE_SESSION_NAME")); this.Credentials = provider.GetCredentials(); return(this.Credentials); }