CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/go-github-com-aws-aws-sdk-go-v2--config

Utilities for loading AWS SDK configuration from multiple sources including environment variables and shared configuration files

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

AWS SDK for Go v2 - Config Package

The config package provides utilities for loading and managing AWS SDK configuration from multiple sources including environment variables, AWS shared configuration files (/.aws/config), and AWS shared credentials files (/.aws/credentials). It offers the primary LoadDefaultConfig function that loads configuration from all supported SDK sources and resolves credentials using the SDK's default credential chain.

Package Information

  • Package Name: github.com/aws/aws-sdk-go-v2/config
  • Package Type: go
  • Language: Go
  • Installation: go get github.com/aws/aws-sdk-go-v2/config@v1.32.2

Core Imports

import (
    "context"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/aws"
)

Basic Usage

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/aws/aws-sdk-go-v2/config"
)

func main() {
    // Load default configuration
    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
        log.Fatalf("unable to load SDK config, %v", err)
    }

    // Configuration is now ready to use with AWS service clients
    fmt.Printf("Region: %s\n", cfg.Region)
}

Capabilities

Configuration Loading

Load AWS SDK configuration from environment variables and shared config files with customizable options.

func LoadDefaultConfig(ctx context.Context, optFns ...func(*LoadOptions) error) (cfg aws.Config, err error)

Configuration Loading

Environment Configuration

Retrieve AWS configuration from environment variables.

type EnvConfig struct {
    Credentials                      aws.Credentials
    ContainerCredentialsEndpoint     string
    ContainerCredentialsRelativePath string
    ContainerAuthorizationToken      string
    Region                           string
    SharedConfigProfile              string
    SharedCredentialsFile            string
    SharedConfigFile                 string
    CustomCABundle                   string
    EnableEndpointDiscovery          aws.EndpointDiscoveryEnableState
    WebIdentityTokenFilePath         string
    RoleARN                          string
    RoleSessionName                  string
    S3UseARNRegion                   *bool
    EC2IMDSClientEnableState         imds.ClientEnableState
    EC2IMDSv1Disabled                *bool
    EC2IMDSEndpointMode              imds.EndpointModeState
    EC2IMDSEndpoint                  string
    S3DisableMultiRegionAccessPoints *bool
    UseDualStackEndpoint             aws.DualStackEndpointState
    UseFIPSEndpoint                  aws.FIPSEndpointState
    DefaultsMode                     aws.DefaultsMode
    RetryMaxAttempts                 int
    RetryMode                        aws.RetryMode
    AppID                            string
    IgnoreConfiguredEndpoints        *bool
    BaseEndpoint                     string
    DisableRequestCompression        *bool
    RequestMinCompressSizeBytes      *int64
    S3DisableExpressAuth             *bool
    AccountIDEndpointMode            aws.AccountIDEndpointMode
}

func NewEnvConfig() (EnvConfig, error)

Environment Configuration

Load Options

Configure the behavior of LoadDefaultConfig using functional options.

type LoadOptions struct {
    Region                           string
    Credentials                      aws.CredentialsProvider
    BearerAuthTokenProvider          smithybearer.TokenProvider
    HTTPClient                       HTTPClient
    EndpointResolver                 aws.EndpointResolver
    EndpointResolverWithOptions      aws.EndpointResolverWithOptions
    RetryMaxAttempts                 int
    RetryMode                        aws.RetryMode
    Retryer                          func() aws.Retryer
    APIOptions                       []func(*middleware.Stack) error
    Logger                           logging.Logger
    ClientLogMode                    *aws.ClientLogMode
    SharedConfigProfile              string
    SharedConfigFiles                []string
    SharedCredentialsFiles           []string
    CustomCABundle                   io.Reader
    DefaultRegion                    string
    UseEC2IMDSRegion                 *UseEC2IMDSRegion
    CredentialsCacheOptions          func(*aws.CredentialsCacheOptions)
    BearerAuthTokenCacheOptions      func(*smithybearer.TokenCacheOptions)
    SSOTokenProviderOptions          func(*ssocreds.SSOTokenProviderOptions)
    ProcessCredentialOptions         func(*processcreds.Options)
    EC2RoleCredentialOptions         func(*ec2rolecreds.Options)
    EndpointCredentialOptions        func(*endpointcreds.Options)
    WebIdentityRoleCredentialOptions func(*stscreds.WebIdentityRoleOptions)
    AssumeRoleCredentialOptions      func(*stscreds.AssumeRoleOptions)
    SSOProviderOptions               func(*ssocreds.Options)
    LogConfigurationWarnings         *bool
    S3UseARNRegion                   *bool
    S3DisableMultiRegionAccessPoints *bool
    EnableEndpointDiscovery          aws.EndpointDiscoveryEnableState
    EC2IMDSClientEnableState         imds.ClientEnableState
    EC2IMDSEndpointMode              imds.EndpointModeState
    EC2IMDSEndpoint                  string
    UseDualStackEndpoint             aws.DualStackEndpointState
    UseFIPSEndpoint                  aws.FIPSEndpointState
    DefaultsModeOptions              DefaultsModeOptions
    AppID                            string
    DisableRequestCompression        *bool
    RequestMinCompressSizeBytes      *int64
    S3DisableExpressAuth             *bool
    AccountIDEndpointMode            aws.AccountIDEndpointMode
}

type LoadOptionsFunc func(*LoadOptions) error

Load Options and Functional Options

Shared Configuration Files

Access default file paths and manage AWS shared configuration and credentials files.

func DefaultSharedConfigFilename() string
func DefaultSharedCredentialsFilename() string

var DefaultSharedConfigFiles []string
var DefaultSharedCredentialsFiles []string

const DefaultSharedConfigProfile = "default"

Shared Configuration Files

Advanced Shared Configuration

Direct access to shared configuration file structures for advanced scenarios.

func LoadSharedConfigProfile(ctx context.Context, profile string, optFns ...func(*LoadSharedConfigOptions)) (SharedConfig, error)

type SharedConfig struct {
    Profile                          string
    Region                           string
    Credentials                      aws.Credentials
    RoleARN                          string
    SSOSessionName                   string
    // And 30+ additional fields
}

type LoadSharedConfigOptions struct {
    CredentialsFiles []string
    ConfigFiles      []string
    Logger           logging.Logger
}

type SSOSession struct {
    Name        string
    SSORegion   string
    SSOStartURL string
}

type Services struct {
    ServiceValues map[string]map[string]string
}

Advanced Shared Configuration

Region Configuration

Configure region resolution from EC2 Instance Metadata Service.

type UseEC2IMDSRegion struct {
    Client *imds.Client
}

Region Configuration

Advanced Configuration

Configure SDK defaults mode and other advanced options.

type DefaultsModeOptions struct {
    Mode       aws.DefaultsMode
    IMDSClient *imds.Client
}

type HTTPClient interface {
    Do(*http.Request) (*http.Response, error)
}

Advanced Configuration

Error Types

type AssumeRoleTokenProviderNotSetError struct{}

func (e AssumeRoleTokenProviderNotSetError) Error() string

type CredentialRequiresARNError struct {
    Type    string
    Profile string
}

func (e CredentialRequiresARNError) Error() string

type SharedConfigLoadError struct{}
func (e SharedConfigLoadError) Error() string
func (e SharedConfigLoadError) Unwrap() error

type SharedConfigAssumeRoleError struct{}
func (e SharedConfigAssumeRoleError) Error() string
func (e SharedConfigAssumeRoleError) Unwrap() error

type SharedConfigProfileNotExistError struct{}
func (e SharedConfigProfileNotExistError) Error() string
func (e SharedConfigProfileNotExistError) Unwrap() error

Constants

const (
    DefaultSharedConfigProfile = "default"
)

const CredentialsSourceName = "EnvConfigCredentials"

Variables

var DefaultSharedConfigFiles = []string{
    DefaultSharedConfigFilename(),
}

var DefaultSharedCredentialsFiles = []string{
    DefaultSharedCredentialsFilename(),
}
Workspace
tessl
Visibility
Public
Created
Last updated
Describes
golangpkg:golang/github.com/aws/aws-sdk-go-v2/config@v1.32.2
Publish Source
CLI
Badge
tessl/go-github-com-aws-aws-sdk-go-v2--config badge