av-becker — Bestand

FeldWert
Account-ID084400305827
Account-Nameav-becker
Emailaws+av-becker@agenticventures.de
Erstellt2026-05-07 13:48
Regioneu-central-1 (Default)
Kundebecker
Projekt_index

Was drin ist (Stand 2026-05-07)

S3 Buckets

BucketErstelltZweck
bas-twin-data-eu-central-12026-05-07 11:53Production-Daten BAS-Twin (Stammdaten, Auftraege, Coil-Verschnitt)
bas-twin-data-test-eu-central-12026-05-07 11:53Test/Staging-Daten BAS-Twin
bas-twin-artifacts-eu-central-12026-05-07 11:53Artefakte (Reports, PDFs, Modell-Outputs)
becker-bedrock-logs-eu-central-12026-05-07 18:11Bedrock-Invocation-Logs (Volltext I/O), versioned, SSE-S3, Bucket-Policy auf bedrock.amazonaws.com, Lifecycle 90d→Deep Archive, 7 Jahre Retention

Contract-Storage liegt NICHT hier. Vertragsdokumente (Angebote, AVV, Vertragsbedingungen, Gruendungsurkunde, AWS DPA) sind AV-eigene Geschaeftsdaten und liegen in av-production unter s3://av-business-eu-central-1/customers/becker/2026-bas-twin/. Convention nach Vault-Konvention “Kunden-Sub-Account = nur Kunden-Workload, AV-eigene Sachen = av-production”.

Daten-Struktur in bas-twin-data + bas-twin-data-test (Stand 2026-05-11):

Beide Buckets haben identisches Skeleton mit Top-Level-Prefixes inbound/, curated/, exports/, _archive/ plus Kategorien stammdaten/, auftraege/, coil-verschnitt/, speedzone/, lme/ unter inbound + curated. README am Bucket-Root erklaert Convention + Tag-Schema (data-class, source, customer, confidentiality). Test-Bucket ist Alex’ Sandbox (RW via SSO BeckerBasOperator), Prod ist read-only fuer Alex.

Erste Real-Daten in bas-twin-data (Stand 2026-05-20, von Marvin manuell hochgeladen via Console, Wegsortierung 2026-05-20):

PfadInhaltQuelle
inbound/stammdaten/2026-05-20/artikel-stamm.xlsxArtikelstamm BAS (4.9 MB)BAS-IT Export
inbound/stammdaten/2026-05-11/vormaterial-txltc.xlsxVormaterial-Stamm txltc1505m000_200 (1.3 MB)BAS-IT Export 2026-05-11
inbound/auftraege/2026-05-11/offene-pas-tisfc.xlsxOffene Produktionsauftraege tisfc0501m000_200 (23 KB)BAS-IT Export 2026-05-11
inbound/auftraege/2026-05-20/anfragen-bundle.zipOriginal-Lieferungs-Bundle (4.2 MB, 7 eml)BAS — entpackt 2026-05-20, Bundle bleibt als Lieferungs-Stand
inbound/auftraege/2026-05-20/anfragen/2026-00177-rolls-royce-structuurdelen.emlRFQ Rolls Royce StrukturteileEmail
inbound/auftraege/2026-05-20/anfragen/26-0599-aluminium.emlAnfrage 26-0599 AluminiumEmail
inbound/auftraege/2026-05-20/anfragen/26-0567-mp-6146.emlAnfrage 26-0567 MP-6146Email
inbound/auftraege/2026-05-20/anfragen/materialanfrage-3x72mm-guete-3-3535.emlMaterialanfrage 3,0 x 72 mm Guete 3.3535Email
inbound/auftraege/2026-05-20/anfragen/rfq-materials.emlGenerische RFQEmail
inbound/auftraege/2026-05-20/anfragen/rfq-materials-2s-2026-valencia-vigo-szolnok.emlRFQ 2S 2026 — Valencia/Vigo/SzolnokEmail
inbound/auftraege/2026-05-20/anfragen/anfrage-101342-kalk-ref-26-0269-00.emlAnfrage 101342 Kalk-Ref 26-0269-00Email
inbound/coil-verschnitt/2026-05-05/coil-trim-stockdemands.xlsxCoil-Trim StockDemands 20260505_13005801 (938 KB)BAS-IT Export 2026-05-05
inbound/lme/2026-05/lme-metallpraemie-bas-mai.emlLME + Metall-Praemie Mai 2026 (161 KB)Email-Forward

Alle 6 Objekte mit Pflicht-Tags customer=becker, data-class=raw, source=marvin, confidentiality=sensitive. Initiale Ablage war in inbound/inbox/ (Sammel-Ordner ausserhalb Konvention) — Wegsortierung 2026-05-20 verschoben in die richtigen Kategorien, alte Keys soft-deleted (Versioning behaelt Rollback-Stand).

Settings auf allen vier Buckets (verifiziert 2026-05-10 nach KMS-Migration):

  • Versioning: Enabled
  • Encryption: aws:kms mit Customer-Managed-Key alias/bas-twin-data (Bucket-Key enabled fuer Cost-Optimization, SSE-C blockiert). KMS-Migration 2026-05-10 — Altobjekte (Stand vor Migration) bleiben mit AES256 lesbar, neue Objekte mit CMK.
  • Public Access Block: alle 4 Flags true
  • Lifecycle (bas-twin-*): Noncurrent-Versions → Glacier nach 30d, MultipartUpload-Abort nach 7d
  • Lifecycle (becker-bedrock-logs): Current-Objects → Deep Archive nach 90d, Expiration nach 2555d (7 Jahre HGB-konform), Noncurrent-Versions → Deep Archive nach 30d, Noncurrent-Expiration nach 365d, MultipartUpload-Abort nach 7d

IAM

User:

  • bas-bedrock-pilot (Service-Account) — fuer programmatischen Bedrock-Zugriff aus der BAS-Twin-App. Kein Console-Zugriff. Active Access Key seit 2026-05-07 11:51 (Key-ID + Secret in SSM Parameter Store, Region eu-central-1, Profil av-becker: /agentic-ventures/av-becker/bas-bedrock-pilot/access-key-id (String) + /secret-access-key (SecureString). Konvention siehe aws-ssm-secrets-konvention).
    • Inline-Policy BasTwinBedrockS3 (verifiziert 2026-05-07): least-privilege, nur bedrock:InvokeModel/InvokeModelWithResponseStream/Converse/ConverseStream auf anthropic.claude-* in 6 EU-Regionen + eu.anthropic.claude-*-Inference-Profile, plus bedrock:List/GetFoundationModels/InferenceProfiles (read-only Discovery), plus S3-Object-RW (Get/Put/Delete/GetObjectVersion) auf die 3 bas-twin-*-Buckets und Bucket-Listing. Keine IAM-, keine Org-, keine Cross-Account-Permissions
    • Keine Group-Membership, keine Managed Policies attached

Roles (custom, nicht service-linked):

  • OrganizationAccountAccessRole — automatisch von Org-Setup
  • AWSReservedSSO_AdministratorAccess_* — Identity-Center-Generated fuer Marvin
  • AWSReservedSSO_BeckerBasOperator_* — Identity-Center-Generated fuer Alex Gross

KMS

Customer-Managed-Key (CMK):

FeldWert
Aliasalias/bas-twin-data
Key-ID01813a9d-bde7-434c-9d70-c94ba9176a9a
ARNarn:aws:kms:eu-central-1:084400305827:key/01813a9d-bde7-434c-9d70-c94ba9176a9a
KeyUsageENCRYPT_DECRYPT, SYMMETRIC_DEFAULT
OriginAWS_KMS
Auto-RotationEnabled (jaehrlich, naechste Rotation 2027-05-10)
Erstellt2026-05-10

Wer darf den Key benutzen (Key-Policy):

  • arn:aws:iam::084400305827:root — Account-Admin via IAM-Permissions (deckt Marvin-SSO AdministratorAccess ab)
  • IAM-User bas-bedrock-pilotEncrypt/Decrypt/ReEncrypt*/GenerateDataKey*/DescribeKey
  • Service-Principal bedrock.amazonaws.comGenerateDataKey/Decrypt, eingeschraenkt auf aws:SourceAccount=084400305827 und arn:aws:bedrock:eu-central-1:084400305827:* (fuer Invocation-Logs in den becker-bedrock-logs-Bucket)
  • Service-Principal s3.amazonaws.comGenerateDataKey/Decrypt, eingeschraenkt auf aws:SourceAccount=084400305827 (fuer Bucket-Key-Mechanik)

Verwendung: Default-Encryption auf allen 4 S3-Buckets (bas-twin-data, bas-twin-data-test, bas-twin-artifacts, becker-bedrock-logs). Smoke-Test 2026-05-10: write+read+head erfolgreich, Object-Header zeigt aws:kms mit korrektem KeyId.

Notbremse: aws kms disable-key --key-id alias/bas-twin-data --profile av-becker --region eu-central-1 — alle 4 Buckets sind sofort fuer neue Decrypt-Operationen tot, bis enable-key. Loeschung mit 7–30d Schedule (schedule-key-deletion), in der Zeit per cancel-key-deletion rueckgaengig.

Bedrock

EU-Inference-Profile aktiviert (Auswahl):

  • eu.anthropic.claude-sonnet-4-6, claude-sonnet-4-5, claude-sonnet-4-20250514, claude-3-sonnet-20240229
  • eu.anthropic.claude-opus-4-7, claude-opus-4-6-v1, claude-opus-4-5,
  • eu.anthropic.claude-haiku-4-5-20251001, claude-3-haiku-20240307
  • eu.amazon.nova-pro/lite/micro/2-lite
  • eu.meta.llama3-2-1b/3b-instruct
  • eu.mistral.pixtral-large-2502
  • eu.cohere.embed-v4
  • eu.twelvelabs.pegasus-1-2

Plus global.* Profile fuer einige Modelle (cross-region inference). Komplette Liste in CloudTrail / Bedrock-Console.

Default-Modell fuer BAS-Twin: TBD festlegen (Vorschlag: eu.anthropic.claude-sonnet-4-6 als fachlicher Judge, eu.amazon.nova-lite als billige Vorfilter-Stufe).

GuardDuty

Aktiviert 2026-05-11 — Detector cecf0b6d9fd55eeeed523b1f0f3a7870 in eu-central-1, S3-Protection enabled, Finding-Publishing-Frequency SIX_HOURS. Kosten ~10 EUR/Monat. Findings landen in CloudTrail/EventBridge — separate Alarmierung noch nicht konfiguriert (kommt bei erstem Finding oder vor Production-Go-Live).

Networking

  • Default-VPC vpc-0ee239e710645502d (172.31.0.0/16) — bisher unbenutzt
  • Keine Custom-VPC angelegt

Compute

Leer (verifiziert 2026-05-10):

  • App Runner: 0
  • ECS: 0
  • Lambda: 0
  • EC2: 0 (aws ec2 describe-instances --profile av-becker --region eu-central-1 liefert leer)

Sonstiges

  • DynamoDB: 0 Tabellen
  • RDS: 0 Instanzen
  • Secrets Manager: 0 Secrets
  • SSM Parameter Store: 2 Parameters (eu-central-1, verifiziert 2026-05-10):
    • /agentic-ventures/av-becker/bas-bedrock-pilot/access-key-id (String, v1)
    • /agentic-ventures/av-becker/bas-bedrock-pilot/secret-access-key (SecureString mit alias/aws/ssm, v1)
    • Tags: customer=becker, service=bas-bedrock-pilot, managed-by=marvin
    • Lokale Dev-Spiegelung in ~/source/bas-twin/.env (gitignored). SSM ist Source-of-Truth — bei Rotation hier ändern, dann lokale .env aktualisieren.
  • Route53: 0 Hosted Zones
  • KMS: 1 Customer-Managed-Key (alias/bas-twin-data, siehe KMS-Abschnitt) plus AWS-managed Default-Keys (alias/aws/ssm fuer SSM-SecureString)
  • GuardDuty: nicht aktiviert
  • AWS Config: nicht aktiviert

Audit-Trail

Management-Events: zentral via Org-Trail av-mgmt-trail (Mgmt-Account). Keine separate Trail-Konfiguration im Becker-Account noetig.

Bedrock-Invocation-Logs (LLM-Calls): aktiv seit 2026-05-07 18:11. Vollstaendige Inputs + Outputs (Text, Image, Embedding, Video) werden in s3://becker-bedrock-logs-eu-central-1/AWSLogs/084400305827/BedrockModelInvocationLogs/ geschrieben. Konfiguration via bedrock put-model-invocation-logging-configuration (siehe Setup-Files in aws-api-mcp/workdir/bedrock-*.json). Bucket-Setup:

  • Versioning: enabled
  • Encryption: aws:kms mit CMK alias/bas-twin-data und Bucket-Key (Migration 2026-05-10)
  • Public Access Block: alle 4 Flags true
  • Bucket-Policy: nur bedrock.amazonaws.com darf s3:PutObject mit aws:SourceAccount=084400305827 und aws:SourceArn=arn:aws:bedrock:eu-central-1:084400305827:*
  • KMS-Permission fuer Bedrock-Service-Principal in der Key-Policy von alias/bas-twin-data (GenerateDataKey/Decrypt, gleiche Source-Conditions)

Damit ist der DSGVO-Audit-Trail fuer LLM-Calls strukturell erfuellt — jede InvokeModel/Converse-Anfrage hinterlaesst eine Spur mit Request-ID, Modell, Timestamp, vollem Prompt und vollem Output.

Optional spaeter: CloudWatch-Log-Group fuer leichteres Browsing der Metadaten (RequestId, ModelId, Latency) ohne Volltext. Heute bewusst weggelassen — S3 alleine reicht fuer Audit-Pflicht.

Wer hat Zugriff

WerWieWas
mkuehlmann (Marvin)SSO Identity CenterAdministratorAccess (alles)
alex-gross (Alex Gross)SSO Identity CenterBeckerBasOperator (S3-RW auf -test, S3-Read auf prod, Bedrock-Invoke Claude)
bas-bedrock-pilot (Service)IAM Access KeyInline-Policy BasTwinBedrockS3 (siehe IAM-Abschnitt oben) — Bedrock-Invoke auf eu.anthropic.claude-* + S3-RW auf bas-twin-*-Buckets
default IAM-User in MgmtAssumeRole OrganizationAccountAccessRoleAdmin (Fallback wenn SSO down)

Offene Punkte

Erledigt 2026-05-07:

  • Bedrock-Invocation-Logging aktivieren — Bucket becker-bedrock-logs-eu-central-1 mit Bucket-Policy auf bedrock.amazonaws.com, Logging-Config aktiv (Text + Image + Embedding + Video Delivery)
  • Lifecycle-Policy becker-bedrock-logs-eu-central-1 — 90d → Deep Archive, 2555d Expiration, Noncurrent-Versions 30d → Deep Archive / 365d Expiration
  • S3-Versionierung auf bas-twin-data-eu-central-1 (war schon Enabled)
  • S3-Verschluesselung pruefen — alle Buckets AES256 + SSE-C blocked, sauber
  • Lifecycle bas-twin-* — war schon (Noncurrent → Glacier, MultipartCleanup)
  • Policy bas-bedrock-pilot reviewen — sehr sauber, keine Aenderung
  • Cost-Alarm — AWS Budget becker-monthly-cost im Mgmt-Account mit LinkedAccount=084400305827-Filter, 110 USD/Monat (~100 EUR), Notifications an hello@marvinkuehlmann.com bei 80 %/100 % Actual und 100 % Forecasted

Erledigt 2026-05-11:

  • GuardDuty aktiviert — Detector cecf0b6d9fd55eeeed523b1f0f3a7870 eu-central-1, S3-Protection + 6h Publishing-Frequency
  • AWS GDPR DPA dokumentiert — Standalone-PDF (2026-05-11-aws-gdpr-dpa.pdf) in av-business-eu-central-1/firma/compliance/ (av-production-Account) abgelegt. Akzeptanz erfolgt automatisch via AWS Service Terms § 12 seit Account-Erstellung — kein separater Klick-Workflow mehr seit Maerz 2018. PDF dient Becker-DSB als Sub-Auftragsverarbeiter-Nachweis.
  • Daten-Bucket-Skeleton aufgebautinbound/, curated/, exports/, _archive/ mit Sub-Kategorien stammdaten/, auftraege/, coil-verschnitt/, speedzone/, lme/ in beiden Buckets (test + prod). README + .keep-Marker hochgeladen.
  • Vertrags-Storage umgezogen — Initiale Ablage in bas-twin-artifacts/contracts/ war falscher Account (Kunden-Sub statt AV-eigen). Migration nach s3://av-business-eu-central-1/ im av-production-Account erledigt. Alter Pfad mit Versioning soft-deleted (Noncurrent-Versions bleiben fuer Rollback).

Offen:

  • AWS Config aktivieren? — Cost-Trade-off (~5–15 EUR/Monat, Compliance-Snapshots aller Resource-Aenderungen). Lohnt sich erst bei mehr Resources
  • Access-Key von bas-bedrock-pilot rotieren — Reminder Q3 2026 (90-Tage-Rotation ist ueblich, akut nicht noetig)
  • GuardDuty-Findings-Alarmierung (SNS → Email) — vor Production-Go-Live einrichten
  • HRB-Auszug nach UG-Eintragung in 05-unternehmensnachweise/ nachpflegen
  • Versicherungs-Bestaetigungen (LVM IT-Berufshaft + Hiscox Cyber) im Pre-Sprint hochladen Erledigt 2026-05-20:
  • Bedrock-Logging Pfad-Bug gefixtkeyPrefix aus Logging-Config entfernt. Neue Logs landen ab jetzt direkt unter AWSLogs/{acct}/BedrockModelInvocationLogs/eu-central-1/... (Bedrock-Default-Pattern). Alt-Files mit doppeltem Prefix (87 Stueck, 585 KB) bleiben — Glacier nach 90d, Expiration nach 7y greift normal.
  • Anfragen.zip entpackt — 7 .eml-Files aus anfragen-bundle.zip extrahiert und mit sauberen Slugs nach inbound/auftraege/2026-05-20/anfragen/ hochgeladen. Bundle bleibt als Original-Lieferungs-Stand daneben. Alle Files mit Pflicht-Tags.

Erledigt 2026-05-10:

  • SSM-Parameter-Store-Diskrepanz aufgeloest — beide Parameter (access-key-id String + secret-access-key SecureString) in eu-central-1 angelegt, Tags gesetzt, Konvention erfuellt. Lokale .env ist jetzt Spiegelung, SSM ist Source-of-Truth.
  • KMS-CMK-Migration auf alle 4 S3-Bucketsalias/bas-twin-data angelegt (Symmetric, ENCRYPT_DECRYPT), Auto-Rotation jaehrlich, Key-Policy mit Marvin-Admin + bas-bedrock-pilot + bedrock.amazonaws.com + s3.amazonaws.com. Default-Encryption auf allen 4 Buckets von AES256 auf aws:kms umgestellt mit Bucket-Key. Smoke-Test gruen. Pattern aws-stack-pattern.md jetzt erfuellt.