Allow EC2 IAM roles to be used when authorizing region endpoints
Signed-off-by: Richard Scothern <richard.scothern@docker.com>master
							parent
							
								
									4e17ab5d31
								
							
						
					
					
						commit
						3da5f9088d
					
				| 
						 | 
					@ -270,33 +270,21 @@ func FromParameters(parameters map[string]interface{}) (*Driver, error) {
 | 
				
			||||||
// bucketName
 | 
					// bucketName
 | 
				
			||||||
func New(params DriverParameters) (*Driver, error) {
 | 
					func New(params DriverParameters) (*Driver, error) {
 | 
				
			||||||
	awsConfig := aws.NewConfig()
 | 
						awsConfig := aws.NewConfig()
 | 
				
			||||||
	var creds *credentials.Credentials
 | 
						if params.RegionEndpoint != "" {
 | 
				
			||||||
	if params.RegionEndpoint == "" {
 | 
					 | 
				
			||||||
		creds = credentials.NewChainCredentials([]credentials.Provider{
 | 
					 | 
				
			||||||
			&credentials.StaticProvider{
 | 
					 | 
				
			||||||
				Value: credentials.Value{
 | 
					 | 
				
			||||||
					AccessKeyID:     params.AccessKey,
 | 
					 | 
				
			||||||
					SecretAccessKey: params.SecretKey,
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			&credentials.EnvProvider{},
 | 
					 | 
				
			||||||
			&credentials.SharedCredentialsProvider{},
 | 
					 | 
				
			||||||
			&ec2rolecreds.EC2RoleProvider{Client: ec2metadata.New(session.New())},
 | 
					 | 
				
			||||||
		})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		creds = credentials.NewChainCredentials([]credentials.Provider{
 | 
					 | 
				
			||||||
			&credentials.StaticProvider{
 | 
					 | 
				
			||||||
				Value: credentials.Value{
 | 
					 | 
				
			||||||
					AccessKeyID:     params.AccessKey,
 | 
					 | 
				
			||||||
					SecretAccessKey: params.SecretKey,
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			&credentials.EnvProvider{},
 | 
					 | 
				
			||||||
		})
 | 
					 | 
				
			||||||
		awsConfig.WithS3ForcePathStyle(true)
 | 
							awsConfig.WithS3ForcePathStyle(true)
 | 
				
			||||||
		awsConfig.WithEndpoint(params.RegionEndpoint)
 | 
							awsConfig.WithEndpoint(params.RegionEndpoint)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						creds := credentials.NewChainCredentials([]credentials.Provider{
 | 
				
			||||||
 | 
							&credentials.StaticProvider{
 | 
				
			||||||
 | 
								Value: credentials.Value{
 | 
				
			||||||
 | 
									AccessKeyID:     params.AccessKey,
 | 
				
			||||||
 | 
									SecretAccessKey: params.SecretKey,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							&credentials.EnvProvider{},
 | 
				
			||||||
 | 
							&credentials.SharedCredentialsProvider{},
 | 
				
			||||||
 | 
							&ec2rolecreds.EC2RoleProvider{Client: ec2metadata.New(session.New())},
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	awsConfig.WithCredentials(creds)
 | 
						awsConfig.WithCredentials(creds)
 | 
				
			||||||
	awsConfig.WithRegion(params.Region)
 | 
						awsConfig.WithRegion(params.Region)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue