> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Amazon Web Service (AWS)

> Used to authenticate with AWS endpoints.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Authenticates a connection with Amazon Web Services endpoints, such as EC2, SQS, or other AWS APIs. When added to an HTTP connection, every request is automatically signed with your AWS credentials using AWS Signature Version 4 so Amazon accepts it. By default it reads the AWS service and region straight from the URL you are calling, so in most cases you only need to provide your keys.

This documentation describes: [Schema](/schemas/http-authentication-configurator/aws)

## Fields

<FormField property="key" label="Access key" required>
  The public identifier of the access key you created in AWS. It tells Amazon which account is making the request. You can store the value in an environment variable and reference it here.
</FormField>

<FormField property="secret" label="Secret key" required>
  The secret half of the access key created in AWS. It signs each request and should be kept private. You can store it in an environment variable and reference it here rather than typing it in plainly.
</FormField>

<FormField property="awsApi" label="AWS service and region" required>
  Controls how the service and region used to sign the request are determined. It holds one toggle, **Derive AWS service and region from the URL**, which is on by default. AWS endpoint URLs follow the shape `https://service-code.region-code.amazonaws.com`, so when the toggle is on, Alumio reads the service and region from the address you are calling and you do not enter them yourself. Leave it on for standard AWS endpoints.

  Turn the toggle off when the URL does not follow that pattern or you want to sign for a specific service and region. Two extra fields then appear, both required: **AWS Service** (the service code, for example `ec2`) and **AWS Region** (the region, for example `us-east-1`).
</FormField>

## Sample data

This feature signs outgoing requests rather than transforming data, so there is no before/after to show. A setup that reads the service and region from the URL looks like this:

| Field           | Value             |
| --------------- | ----------------- |
| Access key      | `your-access-key` |
| Secret key      | `your-secret-key` |
| Derive from URL | `true`            |

```json Configuration theme={null}
{
  "prototype": "aws",
  "parameters": {
    "key": "your-access-key",
    "secret": "your-secret-key",
    "awsApi": {
      "deriveFromHost": true
    }
  }
}
```
