Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SigningService ¶
type SigningService struct { // SigningServiceConfig is the SigningService configuration. SigningServiceConfig // Forwarder signs and forwards the request to AWS API. *forward.Forwarder }
SigningService is an AWS CLI proxy service that signs AWS requests based on user identity.
func NewSigningService ¶
func NewSigningService(config SigningServiceConfig) (*SigningService, error)
NewSigningService creates a new instance of SigningService.
func (*SigningService) RoundTrip ¶
RoundTrip handles incoming requests and forwards them to the proper AWS API. Handling steps: 1) Decoded Authorization Header. Authorization Header example:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, SignedHeaders=host;range;x-amz-date, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024 2. Extract credential section from credential Authorization Header. 3. Extract aws-region and aws-service from the credential section. 4. Build AWS API endpoint based on extracted aws-region and aws-service fields. Not that for endpoint resolving the https://github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go package is used and when Amazon releases a new API the dependency update is needed. 5. Sign HTTP request. 6. Forward the signed HTTP request to the AWS API.
type SigningServiceConfig ¶
type SigningServiceConfig struct { // Client is an HTTP client instance used for HTTP calls. Client *http.Client // Log is the Logger. Log logrus.FieldLogger // Session is AWS session. Session *awssession.Session // Clock is used to override time in tests. Clock clockwork.Clock // contains filtered or unexported fields }
SigningServiceConfig is the SigningService configuration.
func (*SigningServiceConfig) CheckAndSetDefaults ¶
func (s *SigningServiceConfig) CheckAndSetDefaults() error
CheckAndSetDefaults validates the SigningServiceConfig config.
Click to show internal directories.
Click to hide internal directories.