private async Task <BasicSessionCredentials> GetNewSessionCredentialsAsync(CancellationToken cancellationToken)
        {
            var request = new GetSessionAccessKeyRequest
            {
                PublicKeyId     = rsaKeyPairCredential.GetAccessKeyId(),
                DurationSeconds = (int)sessionDurationSeconds,
                Protocol        = ProtocolType.HTTPS
            };

            var response = await stsClient.GetAcsResponseAsync(request, cancellationToken).ConfigureAwait(false);

            return(new BasicSessionCredentials(
                       response.SessionAccesskey.SessionAccessKeyId,
                       response.SessionAccesskey.SessionAccessKeySecert,
                       null, sessionDurationSeconds
                       ));
        }
        private async Task <BasicSessionCredentials> GetNewSessionCredentialsAsync()
        {
            var assumeRoleRequest = new AssumeRoleRequest
            {
                RoleArn         = roleArn,
                RoleSessionName = roleSessionName,
                DurationSeconds = roleSessionDurationSeconds
            };

            if (!string.IsNullOrEmpty(policy))
            {
                assumeRoleRequest.Policy = policy;
            }

            var response = await stsClient.GetAcsResponseAsync(assumeRoleRequest).ConfigureAwait(false);

            return(new BasicSessionCredentials(
                       response.Credentials.AccessKeyId,
                       response.Credentials.AccessKeySecret,
                       response.Credentials.SecurityToken, roleSessionDurationSeconds
                       ));
        }
示例#3
0
 public static Task <T> GetAcsResponseAsync <T>(this IAcsClient client, AcsRequest <T> request, IClientProfile profile) where T : AcsResponse
 {
     return(client.GetAcsResponseAsync(request, profile, default(CancellationToken)));
 }
示例#4
0
 public static Task <T> GetAcsResponseAsync <T>(this IAcsClient client, AcsRequest <T> request, string regionId, Credential credential) where T : AcsResponse
 {
     return(client.GetAcsResponseAsync(request, regionId, credential, default(CancellationToken)));
 }
示例#5
0
 public static Task <T> GetAcsResponseAsync <T>(this IAcsClient client, AcsRequest <T> request, bool autoRetry, int maxRetryCounts) where T : AcsResponse
 {
     return(client.GetAcsResponseAsync(request, autoRetry, maxRetryCounts, default(CancellationToken)));
 }