# Evidence Store: AWS S3 Quickstart for using AWS S3 as your BYOS evidence store. ## Prerequisites - AWS account with S3 access - AWS CLI configured (`aws configure`) or IAM role attached - An S3 bucket (ideally with Object Lock enabled for WORM compliance) ## Bucket setup ```bash # Create bucket with Object Lock enabled (recommended for WORM compliance). # Object Lock must be enabled at bucket creation time. aws s3api create-bucket \ --bucket my-assay-evidence \ --region us-east-1 \ --object-lock-enabled-for-object-lock-configuration ``` ## Assay configuration ### Option A: Environment variables ```bash export ASSAY_STORE_URL=s3://my-assay-evidence/assay/evidence export AWS_ACCESS_KEY_ID=AKIA... export AWS_SECRET_ACCESS_KEY=... export AWS_REGION=us-east-1 ``` ### Option B: Config file Create `.assay/store.yaml` (preferred) or `assay-store.yaml` in your project root: ```yaml # .assay/store.yaml url: s3://my-assay-evidence/assay/evidence region: us-east-1 ``` Credentials remain in environment variables or IAM role — never in the config file. ## Verify ```bash assay evidence store-status ``` Expected output: ``` Evidence Store Status ==================== Backend: s3 Bucket: my-assay-evidence Prefix: assay/evidence Reachable: OK Readable: OK Writable: OK Object Lock: unknown Bundles: 0 Total size: 0 B ``` ## Usage ```bash assay evidence push bundle.tar.gz assay evidence list assay evidence pull --bundle-id sha256:... ``` ## CI (GitHub Actions with OIDC) For keyless CI authentication, see the [GitHub Action BYOS guide](github-action.md#byos-push-with-oidc).