# LogPush for Amazon S3 (AWS)

## Overview

Our services will periodically push audit logs to customer-managed AWS S3 bucket. Authentication and authorization are securely handled by AWS Security Token Service with an explicit trust relationship between Sourcegraph-owned GCP identity (GCP Service Account) and the customer-managed AWS S3 bucket.

## Steps

To enable this feature, please contact your assigned Customer Engineer (CE) or support team to obtain the specific instruction. Below is a high level overview of the steps.

-   Sourcegraph provides below information to customer:
    -   GCP identity (GCP Service Account)
    -   a unique file to prove bucket ownership
-   Customer to perform the following:
    -   creates a S3 bucket
    -   configures the trust relationship with AWS IAM
    -   uploads the ownership file to prove bucket ownership
-   Customer to inform Sourcegraph of the S3 bucket ARN and the AWS IAM role ARN

Once completed, Sourcegraph will complete the LogPush configuration and start sending logs to the customer-managed S3 bucket.

## FAQ

### How does the authentication work?

Sourcegraph will provide instructions on how to configure the trust relationship between the Sourcegraph-owned GCP identity (GCP Service Account) and the customer-managed AWS S3 bucket. We will also provide the example configuration in Terraform. At a high level:

-   Customer creates a AWS IAM role:
    -   with a policy to permit such role to access the S3 bucket
    -   with a policy to permit the Sourcegraph-owned GSA to assume such role
-   Sourcegraph assumes the provisioned AWS IAM role to access the bucket
