Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions ansible/playbook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -183,10 +183,11 @@
systemctl stop fail2ban.service

- name: Run supascan baseline validation
when: stage2 and not qemu
when: stage2
become: yes
shell: |
/bin/bash /tmp/ansible-playbook/ansible/files/supascan_ami.sh /tmp/ansible-playbook/audit-specs/baselines/ami-build-{{ platform }}
baseline={{ 'ami' if not qemu else 'qemu' }}-build-{{ platform }}
/bin/bash /tmp/ansible-playbook/ansible/files/supascan_ami.sh /tmp/ansible-playbook/audit-specs/baselines/$baseline

- name: Remove supascan after validation
when: stage2
Expand Down
2 changes: 1 addition & 1 deletion ansible/tasks/internal/admin-api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- name: adminapi - system user
ansible.builtin.user:
name: adminapi
uid: 1006
uid: "{{ 1006 if not qemu else 1007 }}"
group: adminapi
groups: admin,envoy,gotrue,kong,pgbouncer,postgres,postgrest,root,systemd-journal,vector,wal-g

Expand Down
2 changes: 1 addition & 1 deletion ansible/tasks/internal/supabase-admin-agent.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
- name: supabase-admin-agent - system group
ansible.builtin.group:
name: supabase-admin-agent
gid: 987
gid: "{{ 987 if not qemu else 988 }}"
system: yes

- name: supabase-admin-agent - system user
Expand Down
2 changes: 1 addition & 1 deletion ansible/tasks/setup-envoy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- name: Envoy - user
ansible.builtin.user:
name: envoy
uid: 1003
uid: "{{ 1003 if not qemu else 1004 }}"
group: envoy
state: present

Expand Down
2 changes: 1 addition & 1 deletion ansible/tasks/setup-gotrue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
- name: Gotrue - system user
ansible.builtin.user:
name: gotrue
uid: 1001
uid: "{{ 1001 if not qemu else 1002 }}"
group: gotrue
state: present

Expand Down
2 changes: 1 addition & 1 deletion ansible/tasks/setup-kong.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- name: Kong - user
ansible.builtin.user:
name: kong
uid: 1004
uid: "{{ 1004 if not qemu else 1005 }}"
group: kong
state: present

Expand Down
2 changes: 1 addition & 1 deletion ansible/tasks/setup-pgbouncer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
- name: Create pgbouncer user
ansible.builtin.user:
name: 'pgbouncer'
uid: 1000
uid: "{{ 1000 if not qemu else 1001 }}"
comment: 'PgBouncer user'
group: pgbouncer
groups: 'postgres,ssl-cert'
Expand Down
2 changes: 1 addition & 1 deletion ansible/tasks/setup-postgrest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- name: PostgREST - user
ansible.builtin.user:
name: postgrest
uid: 1002
uid: "{{ 1002 if not qemu else 1003 }}"
group: postgrest
state: present

Expand Down
2 changes: 1 addition & 1 deletion ansible/tasks/setup-supabase-internal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
- name: add vector system group
ansible.builtin.group:
name: vector
gid: 989
gid: "{{ 989 if not qemu else 990 }}"
system: yes

- name: add vector system user
Expand Down
4 changes: 2 additions & 2 deletions ansible/tasks/setup-system.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
- name: Create ubuntu primary group
ansible.builtin.group:
name: ubuntu
gid: 1014
gid: "{{ 1014 if not qemu else 1000 }}"
state: present

- name: Create ubuntu user supplementary groups # noqa: explicit-identity-id
Expand All @@ -19,7 +19,7 @@
- name: Create ubuntu user
ansible.builtin.user:
name: ubuntu
uid: 1007
uid: "{{ 1007 if not qemu else 1000 }}"
group: ubuntu
groups:
- adm
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# File baseline: postgres-config
# PostgreSQL configuration files for AMI build
# Uses string names for owner/group (not numeric IDs)
file:
# Main PostgreSQL config directory
/etc/postgresql:
exists: true
filetype: directory
owner: postgres
group: postgres
mode: '0775'
/etc/postgresql/postgresql.conf:
exists: true
filetype: file
owner: root
group: root
mode: '0644'
/etc/postgresql/pg_hba.conf:
exists: true
filetype: file
owner: root
group: postgres
mode: '0664'
/etc/postgresql/pg_ident.conf:
exists: true
filetype: file
owner: root
group: postgres
mode: '0644'
/etc/postgresql/logging.conf:
exists: true
filetype: file
owner: root
group: postgres
mode: '0644'

# Custom PostgreSQL config directory
/etc/postgresql-custom:
exists: true
filetype: directory
owner: postgres
group: postgres
mode: '0775'
# Note: platform-defaults.conf, pgsodium_root.key, custom-overrides.conf, and
# generated-optimizations.conf are created at deploy time (not during AMI build)
/etc/postgresql-custom/supautils.conf:
exists: true
filetype: file
owner: postgres
group: postgres
mode: '0664'
/etc/postgresql-custom/conf.d:
exists: true
filetype: directory
owner: postgres
group: postgres
mode: '0775'
/etc/postgresql-custom/wal-g.conf:
exists: true
filetype: file
owner: postgres
group: postgres
mode: '0664'
/etc/postgresql-custom/read-replica.conf:
exists: true
filetype: file
owner: postgres
group: postgres
mode: '0664'

# Extension custom scripts directory
/etc/postgresql-custom/extension-custom-scripts:
exists: true
filetype: directory
owner: postgres
group: postgres
mode: '0775'
/etc/postgresql-custom/extension-custom-scripts/before-create.sql:
exists: true
filetype: file
owner: postgres
group: postgres
mode: '0775'

# PostgREST config directory
/etc/postgrest:
exists: true
filetype: directory
owner: postgrest
group: postgrest
mode: '0775'
/etc/postgrest/base.conf:
exists: true
filetype: file
owner: postgrest
group: postgrest
mode: '0644'
19 changes: 19 additions & 0 deletions audit-specs/baselines/qemu-build-arm64/files-postgres-data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# File baseline: postgres-data
# PostgreSQL data directory for AMI build
# Uses string names for owner/group (not numeric IDs)
file:
# PostgreSQL data directory
/var/lib/postgresql:
exists: true
filetype: directory
owner: postgres
group: postgres
mode: '0755'
# Note: /var/lib/postgresql/data is a symlink during AMI build (points to /data/...)
# The actual data directory is created at deploy time
/var/lib/postgresql/data:
exists: true
filetype: symlink
owner: root
group: root
mode: '0777'
77 changes: 77 additions & 0 deletions audit-specs/baselines/qemu-build-arm64/files-security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# File baseline: security
# Critical security-related files for AMI build
# Uses string names for owner/group (not numeric IDs)
file:
# fail2ban configuration directory
/etc/fail2ban:
exists: true
filetype: directory
owner: root
group: root
mode: '0755'
/etc/fail2ban/jail.local:
exists: true
filetype: file
owner: root
group: root
mode: '0644'

# AppArmor
/etc/apparmor.d:
exists: true
filetype: directory
owner: root
group: root
mode: '0755'

# UFW firewall
/etc/ufw:
exists: true
filetype: directory
owner: root
group: root
mode: '0755'
/etc/ufw/ufw.conf:
exists: true
filetype: file
owner: root
group: root
mode: '0644'

# SSH configuration
/etc/ssh/sshd_config:
exists: true
filetype: file
owner: root
group: root
mode: '0644'

# PAM configuration
/etc/pam.d:
exists: true
filetype: directory
owner: root
group: root
mode: '0755'

# Sudoers
/etc/sudoers:
exists: true
filetype: file
owner: root
group: root
mode: '0440'
/etc/sudoers.d:
exists: true
filetype: directory
owner: root
group: root
mode: '0750'

# Security limits
/etc/security/limits.conf:
exists: true
filetype: file
owner: root
group: root
mode: '0644'
30 changes: 30 additions & 0 deletions audit-specs/baselines/qemu-build-arm64/files-ssl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# File baseline: ssl
# SSL certificate and key directories for AMI build
# Uses string names for owner/group (not numeric IDs)
file:
# System SSL directory
/etc/ssl:
exists: true
filetype: directory
owner: root
group: root
mode: '0755'
/etc/ssl/certs:
exists: true
filetype: directory
owner: root
group: root
mode: '0755'
/etc/ssl/private:
exists: true
filetype: directory
owner: root
group: postgres
mode: '0750'
/etc/ssl/openssl.cnf:
exists: true
filetype: file
owner: root
group: root
mode: '0644'
# Note: /etc/ssl/adminapi is created at deploy time, not during AMI build
Loading
Loading