S3 Buckets — Inventar + Konvention
Stand 2026-05-12. Bevor ein neuer Bucket angelegt wird: erst diese Datei lesen, dann erweitern. Nicht ohne Eintrag hier.
Inventar
Live-verifiziert 2026-05-12 via aws s3 ls. Vor groesseren Entscheidungen erneut gegenchecken — siehe Live-Check-Befehl unten.
| Bucket | Account | Region | Zweck | Verzeichnis-Konvention | Encryption | Retention |
|---|---|---|---|---|---|---|
av-cloudtrail-logs-343241684374 | mgmt | eu-central-1 | Org-Trail-Logs aller Accounts (CloudTrail) | auto durch CloudTrail | aws:s3 | per CloudTrail-Lifecycle |
agentic-os-memory | mgmt | eu-central-1 | Memory-Bucket fuer Plugins/Skills (Zweck offen — siehe „Offene Punkte”) | TBD | TBD | TBD |
marvinkuehlmann.com | mgmt | eu-central-1 | Static Website-Hosting marvinkuehlmann.com | n/a (Website-Root) | aws:s3 | keine |
videos.marvinkuehlmann.com | mgmt | eu-central-1 | Video-Hosting | n/a (Website-Root) | aws:s3 | keine |
heygustavo-de-redirect | mgmt | eu-central-1 | Domain-Redirect heygustavo.de | n/a (Redirect-Config) | aws:s3 | keine |
av-business-eu-central-1 | av-production | eu-central-1 | AV-Geschaeftsvault — Vertraege, Firmen-Stammdokumente, AWS-Compliance-Nachweise | firma/<bereich>/, customers/<slug>/<projekt>/ | aws:kms (alias/av-business) | Versioning, Object-Lock, Glacier nach 30d, Expire 2555d (7y HGB) |
av-finanzen-eu-central-1 | av-production | eu-central-1 | UG-Belege/Rechnungen (absetzbar), GoBD-Aufbewahrung | <jahr>/<monat>/<sender-slug>-<datum>-<betrag>.pdf | aws:kms (alias/av-finanzen, KeyId 64fafaf9-5959-4029-80a2-d0d9bc8a4935) | Versioning, Object-Lock Governance Default 2555d, Lifecycle (Glacier 30d Noncurrent, Expire 2555d, Multipart 7d) |
cdk-hnb659fds-assets-425924867359-eu-central-1 | av-production | eu-central-1 | CDK Bootstrap (auto-managed) | n/a (CDK-internal) | aws:s3 | per CDK-Default |
mk-finanzen-eu-central-1 | mk-privat | eu-central-1 | Privat-Belege Marvin (nicht absetzbar) — steuerlich klar getrennt von UG-Spaere | <jahr>/<monat>/<sender-slug>-<datum>-<betrag>.pdf | aws:kms (alias/mk-finanzen, KeyId 5c6b3389-fc83-45dd-b2eb-98d41b436a29) | identisch zu av-finanzen |
bas-twin-data-eu-central-1 | av-becker | eu-central-1 | BAS-Twin Produktiv-Daten | Detail in av-becker | aws:kms | per Bucket-Lifecycle |
bas-twin-data-test-eu-central-1 | av-becker | eu-central-1 | BAS-Twin Test-Daten | Detail in av-becker | aws:kms | per Bucket-Lifecycle |
bas-twin-artifacts-eu-central-1 | av-becker | eu-central-1 | BAS-Twin Build-Artifacts | Detail in av-becker | aws:kms | per Bucket-Lifecycle |
becker-bedrock-logs-eu-central-1 | av-becker | eu-central-1 | Bedrock-Invocation-Logging (Hardening-Task aus av-becker) | auto durch Bedrock-Logging | TBD | TBD |
Anzahl: 13 Buckets in 4 Accounts. Stand 2026-05-12 nach Becker-Migration + Wildwuchs-Cleanup + Finanzen-Buckets-Anlage.
Live-Check-Befehl:
for p in default av-production av-becker mk-privat; do
echo "=== $p ==="; aws --profile $p s3 ls
doneSSO-Profile (mgmt, av-prod, becker, mk-priv) brauchen aws sso login --profile mgmt einmal pro 8h. AssumeRole-Profile (default, av-production, av-becker, mk-privat) funktionieren ohne SSO-Login.
Wo lege ich was ab — Entscheidungsbaum
- Belege/Rechnungen UG (absetzbar)
→
av-finanzen-eu-central-1unter<jahr>/<monat>/<sender-slug>-<datum>-<betrag>.pdf→ Object-Lock Governance Default 2555d (7y) ist Bucket-Default — nicht pro Objekt setzen noetig → siehe workflow-beleg-eingang
1a. Belege/Rechnungen Privat (nicht absetzbar)
→ mk-finanzen-eu-central-1 unter <jahr>/<monat>/<sender-slug>-<datum>-<betrag>.pdf
→ Steuerlich saubere Trennung von UG-Spaere — Account-Grenze ist die UG-Grenze
→ Email-Agent klassifiziert business/privat beim Pull (Haiku, 3 Signale: Gmail-Account + PDF-Empfaenger + Sender-Domain)
-
Vertraege mit Kunden, NDAs, Auftragsbestaetigungen →
av-business-eu-central-1untercustomers/<slug>/vertraege/→ Object-Lock pro Objekt setzen (WORM, GoBD-konform) -
Firmen-Stammdokumente (UG-Gruendung, Gesellschaftervertrag, Handelsregister) →
av-business-eu-central-1unterfirma/recht/ -
AWS-Compliance-Nachweise (AVV, ISO-Cert-Downloads, Penetration-Reports) →
av-business-eu-central-1unterfirma/compliance/ -
Kunden-Produktiv-Daten (Datensaetze, Embeddings, Modell-Inputs/Outputs) → eigener Bucket im Kunden-Sub-Account (
av-<kunde>) → Naming siehe Konvention unten -
Eigene Web-Properties (
agenticventures.de,heyjulia.de, etc.) → eigener Bucket im Mgmt-Account pro Domain → Naming:<domain>(z.B.agenticventures.de) -
MCP-as-a-Service Hosting-Daten →
av-production— eigener Bucket pro MCP wenn persistente Daten → Naming:av-mcp-<name>-<region>(z.B.av-mcp-vault-eu-central-1) -
CloudTrail-Logs → bleiben im Mgmt-Trail-Bucket (
av-cloudtrail-logs-343241684374), nicht doppeln -
CDK Bootstrap-Buckets → pro Account einer, auto-managed durch
cdk bootstrap. Nicht anfassen.
Naming-Konvention
| Pattern | Beispiel | Wann |
|---|---|---|
av-<funktion>[-<region>] | av-business-eu-central-1 | UG-eigene Funktions-Buckets in av-production oder mgmt |
av-mcp-<name>-<region> | av-mcp-vault-eu-central-1 | MCP-Hosting-Daten |
av-<kunde>-<funktion> | av-becker-twin-data | Empfohlen fuer Kunden-Sub-Account-Buckets ab jetzt |
<kunde>-<funktion> (Legacy) | bas-twin-data | Alt-Bestand — nicht mehr fuer neue Kunden anwenden |
<domain> | marvinkuehlmann.com, videos.marvinkuehlmann.com | Static Website-Hosting (S3 erzwingt Bucket-Name = Domain) |
av-cloudtrail-logs-<account-id> | av-cloudtrail-logs-343241684374 | CloudTrail-Org-Bucket im Mgmt |
cdk-hnb659fds-assets-<account-id>-<region> | (auto) | CDK Bootstrap, nicht selber benennen |
Konsequenz fuer av-becker: Die bas-twin-* Buckets bleiben wie sie sind (Legacy), neue Buckets in av-becker ab jetzt mit av-becker--Prefix.
Anti-Wildwuchs-Regel
Bevor ein neuer Bucket angelegt wird:
- Existierenden Bucket pruefen. Reicht ein Prefix in
av-business? Reicht ein Sub-Account-Bucket den es schon gibt? Wenn ja: nutzen, keinen neuen. - Begruendung schreiben. Wenn neuer Bucket noetig: in dieser Datei den Eintrag VORHER anlegen mit Zweck + Verzeichnis-Konvention. Erst dann anlegen.
- Account-Trennung pruefen. Liegt der Bucket im richtigen Account? (UG-eigen →
av-production, Kunde →av-<kunde>, privat →mk-privat, Mgmt-only fuer Logs+Domains) - Encryption + Lifecycle festlegen. Default: KMS-CMK des Accounts (oder eigene wenn Trennung noetig), Versioning, Lifecycle. Nie ohne.
- Public-Access geblockt. Immer. Static-Website-Hosting via CloudFront-OAC, nicht via Bucket-Policy.
- Eintrag hier ergaenzen. Inventar-Tabelle UND Entscheidungsbaum-Punkt wenn neuer Zweck.
Verlauf
- 2026-05-12 Becker-Angebote von Mgmt-Bucket
agentic-ventures-bas-twin(Wildwuchs) nachav-business/customers/becker/vertraege/migriert (server-side via temp Bucket-Policy), Source-Bucket geloescht. - 2026-05-12 Buckets
av-finanzen-eu-central-1(av-production) undmk-finanzen-eu-central-1(mk-privat) angelegt. KMS-Aliasealias/av-finanzen+alias/mk-finanzenmit Auto-Rotation. Object-Lock Governance Default 2555d (7y, GoBD), Versioning, Public-Access geblockt, Lifecycle (Glacier 30d, Expire 2555d, Multipart 7d).
Offene Punkte
Drift offen
- ⚠️
becker-bedrock-logs-eu-central-1— neu inav-becker, aber in av-becker-Doku nicht erfasst. Vermutlich Bedrock-Invocation-Logging-Hardening. Action: Eintrag inav-becker.mdergaenzen, Lifecycle + Encryption verifizieren.
Strategisch
agentic-os-memory— Zweck im Vault unklar. Pruefen ob aktiv genutzt; wenn nicht, loeschen. Wenn ja, in welchem Skill/Plugin referenziert und welche Verzeichnis-Konvention.- Beleg-Pipeline: Email-Agent muss erweitert werden (Klassifikation business/privat, PDF-Pull, S3-Upload in den passenden Bucket, Papierkram-Tool-Call, Vault-Stub). Tracking in _index Phase 1.5.
- Object-Lock-Mode-Upgrade: Heute Governance (Admin-Override moeglich). Nach 1 Monat stabilem Betrieb auf Compliance umstellen — heisst auch der Admin kann 7 Jahre nichts loeschen. Reminder fuer ~2026-06-12.
- Backfill historischer Belege: ~486 Belege im Gmail-Label
Belege, davon 143 Claude-API-Receipts auf privat@ die vermutlich UG-relevant sind. Einmaliger Sortier-Lauf vor Pipeline-Live, sonst kommt nur Neukram in S3.
Related
- _index — AWS-Capability-Dashboard
- accounts — Account-Inventar mit Detail-Bestand
- av-becker — Becker-Sub-Account-Bestand
- beleg-quellen — Beleg-Workflow (heute lokal, perspektivisch S3)
- aws-multi-account-strategie — warum Multi-Account