AWSAuth.Credentials (AWSAuth v1.3.0)

View Source

AWS credentials struct for authentication.

This struct holds AWS credentials for signing requests. It can be created manually or loaded from environment variables.

Fields

  • :access_key_id - AWS Access Key ID (required)
  • :secret_access_key - AWS Secret Access Key (required)
  • :session_token - AWS Session Token for temporary credentials (optional)
  • :region - AWS region (optional, defaults to "us-east-1")

Examples

# Create credentials manually
creds = %AWSAuth.Credentials{
  access_key_id: "AKIAIOSFODNN7EXAMPLE",
  secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
  region: "us-east-1"
}

# Load from environment variables
creds = AWSAuth.Credentials.from_env()

# Load from environment with fallback
creds = AWSAuth.Credentials.from_env() || %AWSAuth.Credentials{
  access_key_id: "...",
  secret_access_key: "..."
}

Environment Variables

from_env/0 reads the following environment variables:

  • AWS_ACCESS_KEY_ID - Access key ID
  • AWS_SECRET_ACCESS_KEY - Secret access key
  • AWS_SESSION_TOKEN - Session token (optional)
  • AWS_REGION or AWS_DEFAULT_REGION - Region (optional)

Summary

Functions

Creates credentials from environment variables.

Creates credentials from a keyword list or map.

Types

t()

@type t() :: %AWSAuth.Credentials{
  access_key_id: String.t() | nil,
  region: String.t() | nil,
  secret_access_key: String.t() | nil,
  session_token: String.t() | nil
}

Functions

from_env()

@spec from_env() :: t() | nil

Creates credentials from environment variables.

Returns nil if required environment variables are not set.

Examples

# With environment variables set
System.put_env("AWS_ACCESS_KEY_ID", "AKIAIOSFODNN7EXAMPLE")
System.put_env("AWS_SECRET_ACCESS_KEY", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY")
System.put_env("AWS_REGION", "us-west-2")

creds = AWSAuth.Credentials.from_env()
# => %AWSAuth.Credentials{
#      access_key_id: "AKIAIOSFODNN7EXAMPLE",
#      secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
#      region: "us-west-2",
#      session_token: nil
#    }

# Without required environment variables
System.delete_env("AWS_ACCESS_KEY_ID")
AWSAuth.Credentials.from_env()
# => nil

from_map(map_or_keyword)

@spec from_map(map() | keyword()) :: t()

Creates credentials from a keyword list or map.

Examples

AWSAuth.Credentials.from_map(%{
  access_key_id: "AKIAIOSFODNN7EXAMPLE",
  secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
  region: "us-east-1"
})