AWS Accounts — Inventar

Org-Struktur

Org o-p197skdqva (Master 343241684374)
└── Root r-2stg
    ├── 343241684374  marvinkuehlmann (Mgmt)
    ├── 425924867359  av-production
    ├── 210948569534  mk-privat
    └── 084400305827  av-becker

Keine OUs — alle Accounts direkt unter Root. Wenn die Account-Zahl waechst (>~6) macht ein einfaches OU-Layout Sinn (z.B. Customers, Internal, Personal). Heute ueberbauend.

Mgmt-Account

FeldWert
Account-ID343241684374
Namemarvinkuehlmann
Emailmarvinkuehlmann@gmail.com
Joined Org2026-05-07 (als Master)
Default Regioneu-central-1

Bestand (2026-05-07):

S3 Buckets:

  • agentic-os-memory — Memory-Bucket fuer Plugins / Skills (Zweck genauer spezifizieren wenn benutzt)
  • av-cloudtrail-logs-343241684374 — Org-Trail-Logs aller Accounts (CloudTrail-Bucket)
  • marvinkuehlmann.com — eigene Website
  • videos.marvinkuehlmann.com — Video-Hosting
  • heygustavo-de-redirect — Domain-Redirect

CloudTrail:

  • av-mgmt-trail — Organization-Trail, multi-region, all-events (ReadWriteType: All), Log-File-Validation aktiviert. Loggt jeden Account in der Org in den Mgmt-Bucket.

IAM-User:

  • mkuehlmann — Marvin als IAM-User (fuer default-CLI-Profile + AssumeRole-Source)

Was nicht hier rein gehoert: Kunden-Workloads. Mgmt bleibt Org-Admin + zentrales Logging + eigene Web-Properties. Keine Production-Apps.

av-production

FeldWert
Account-ID425924867359
Nameav-production
Emailaws+av-production@agenticventures.de
Erstellt2026-05-07

Bestand (Stand 2026-05-11):

S3 Buckets (Detail-Konvention in buckets):

  • av-business-eu-central-1 — AV-Geschaeftsvault: Vertraege pro Kunde, Firmen-Stammdokumente, AWS-Compliance-Nachweise. Konvention: firma/<bereich>/ (multi-customer-shared) und customers/<slug>/<projekt>/ (kundenspezifisch). Encryption aws:kms mit CMK alias/av-business. Versioning enabled, Public Access geblockt, Object-Lock available (per-Objekt setzbar). Lifecycle: Glacier 30d, Expire 2555d (7y), Multipart 7d.
  • av-finanzen-eu-central-1 — UG-Belege/Rechnungen (absetzbar), GoBD-Aufbewahrung. Konvention: <jahr>/<monat>/<sender-slug>-<datum>-<betrag>.pdf. Encryption aws:kms mit CMK alias/av-finanzen. Object-Lock Governance Default 2555d, Versioning, Public Access geblockt, Lifecycle (Glacier 30d, Expire 2555d, Multipart 7d). Angelegt 2026-05-12.
  • cdk-hnb659fds-assets-425924867359-eu-central-1 — CDK Bootstrap-Bucket (auto-managed durch AWS CDK)

KMS:

  • CMK alias/av-business (KeyId 15c18f3b-fd45-49ab-a77f-b3b61753b519) — Symmetric, ENCRYPT_DECRYPT, Auto-Rotation aktiv
  • CMK alias/av-finanzen (KeyId 64fafaf9-5959-4029-80a2-d0d9bc8a4935) — Symmetric, ENCRYPT_DECRYPT, Auto-Rotation aktiv. Fuer av-finanzen-eu-central-1.

IAM:

  • Role agent-beleg-pipeline-exec (arn:aws:iam::425924867359:role/agent-beleg-pipeline-exec) — Lambda-Execution-Role fuer den agent-beleg-pipeline Lambda. Auto-managed durch CDK-Stack BelegPipelineStack. Permissions: Bedrock-Invoke (Haiku 4.5 EU), S3-Write auf av-finanzen-eu-central-1, KMS-Encrypt auf alias/av-finanzen, sts:AssumeRole auf Cross-Account-Role in mk-privat, Secrets-Read fuer 3 Secrets, CloudWatch-Logs. Angelegt 2026-05-12 via cdk deploy. Detail: agents-platform.
  • (deprecated) User email-agent-beleg-writer — am 2026-05-12 angelegt fuer Cloudflare-Path, am gleichen Tag geloescht nach Lambda-Pivot. Access Key invalidiert, Inline-Policy entfernt, User gone.

Vorgesehen fuer:

  • AV-eigene Geschaeftsdokumente und Vertragsverwaltung (laufend, av-business-Bucket)
  • MCP-as-a-Service-Hub (mittelfristig — alle eigenen MCPs als hosted Services)
  • Domain-Hosting wenn UG-eigen (vs. privat im Mgmt-Account)

mk-privat

FeldWert
Account-ID210948569534
Namemk-privat
Emailaws+privat@marvinkuehlmann.com
Erstellt2026-05-07

Bestand (Stand 2026-05-12):

S3 Buckets:

  • mk-finanzen-eu-central-1 — Privat-Belege Marvin (nicht absetzbar), GoBD-Aufbewahrung. Konvention: <jahr>/<monat>/<sender-slug>-<datum>-<betrag>.pdf. Encryption aws:kms mit CMK alias/mk-finanzen. Object-Lock Governance Default 2555d, Versioning, Public Access geblockt, Lifecycle (Glacier 30d, Expire 2555d, Multipart 7d). Angelegt 2026-05-12.

KMS:

  • CMK alias/mk-finanzen (KeyId 5c6b3389-fc83-45dd-b2eb-98d41b436a29) — Symmetric, ENCRYPT_DECRYPT, Auto-Rotation aktiv.

IAM:

  • Role email-agent-beleg-writer-cross-account (arn:aws:iam::210948569534:role/email-agent-beleg-writer-cross-account) — Cross-Account-Schreibzugriff fuer den agent-beleg-pipeline Lambda in av-production. Trust: nur arn:aws:iam::425924867359:role/agent-beleg-pipeline-exec darf sts:AssumeRole. Inline-Policy BelegWriterMkFinanzen: s3:PutObject/Get/Tagging/ListBucket auf mk-finanzen-eu-central-1, kms:Encrypt/Decrypt/GenerateDataKey auf alias/mk-finanzen. MaxSessionDuration 3600s. Angelegt 2026-05-12, Trust nach Lambda-Pivot am gleichen Tag auf Lambda-Role umgestellt.

Vorgesehen fuer: Marvin-Privat-Stuff, klar getrennt von UG-Sphaere. Steuerlich sauber. Account-Grenze ist die UG-Grenze — alles was nicht absetzbar ist landet hier.

av-becker

Detail-Bestand in eigenem File: av-becker.

Kurzfassung:

  • 3 S3 Buckets (bas-twin-data, bas-twin-data-test, bas-twin-artifacts)
  • 1 IAM-User (bas-bedrock-pilot)
  • Bedrock breit aktiviert (EU-Profile)
  • Compute leer

CLI-Profile

Lokale ~/.aws/config. Zwei Mechanismen parallel — SSO als Daily-Default, AssumeRole als Fallback.

SSO-Profile (preferred)

Login: aws sso login --profile mgmt einmal pro 8h, danach alle SSO-Profile in der gleichen Session nutzbar ohne erneuten Login.

[sso-session agentic]
sso_start_url = https://d-996749743e.awsapps.com/start
sso_region = eu-central-1
sso_registration_scopes = sso:account:access

[profile mgmt]      # 343241684374, AdministratorAccess
[profile av-prod]   # 425924867359, AdministratorAccess
[profile becker]    # 084400305827, AdministratorAccess
[profile mk-priv]   # 210948569534, AdministratorAccess

AssumeRole-Profile (Fallback)

Nutzt IAM-User mkuehlmann (default-Profile) als Source und assumiert OrganizationAccountAccessRole im Ziel-Account. Funktioniert ohne SSO-Login.

[default]  # IAM-User mkuehlmann, region eu-central-1

[profile av-becker]
role_arn = arn:aws:iam::084400305827:role/OrganizationAccountAccessRole
source_profile = default

[profile av-production] # 425924867359
[profile mk-privat]     # 210948569534

Externer Account (Icking)

Icking betreibt seinen eigenen AWS-Account 063507503859 ausserhalb unserer Org — Marvin hat dort Gast-Zugriff per SSO. Komplett getrennt von der Agentic-Org.

Dort laeuft die AI-Pipeline fuer Smart Dach Next (5.500 EUR Festpreis-Projekt, Mistral als fachlicher Judge, siehe projekte). HeyJulia laeuft noch nicht — Vertrag v4 wurde 2026-05-06 versendet und wartet auf Antwort. Wenn HeyJulia kommt laeuft das bei uns (in einem av-icking-Sub-Account oder av-production, noch nicht entschieden), nicht im Icking-Account.

[sso-session aicking]
sso_start_url = https://d-9967562255.awsapps.com/start
sso_region = eu-central-1

[profile icking]  # 063507503859, PowerUserAccess

Setup fuer einen neuen Sub-Account

Schritt-fuer-Schritt fuer den naechsten av-<kunde>:

  1. Im Mgmt-Account-Console: Organizations → Add an account → Create
  2. Account-Name: av-<kunde-slug> (Naming siehe naming-konvention)
  3. Email: aws+av-<kunde-slug>@agenticventures.de (Plus-Alias, kein neues Postfach noetig)
  4. IAM-Role-Name: Default OrganizationAccountAccessRole lassen
  5. Warten ~1 Min bis Status ACTIVE
  6. Identity Center → AWS Accounts → neuen Account waehlen → Assign users or groupsmkuehlmann mit AdministratorAccess zuweisen
  7. Im Mgmt-Account einmalig ~/.aws/config ergaenzen:
    [profile <kunde>]
    sso_session = agentic
    sso_account_id = <new-account-id>
    sso_role_name = AdministratorAccess
    region = eu-central-1
    output = json
    
    [profile av-<kunde>]
    role_arn = arn:aws:iam::<new-account-id>:role/OrganizationAccountAccessRole
    source_profile = default
    region = eu-central-1
    
  8. Verifizieren: aws --profile <kunde> sts get-caller-identity (nach aws sso login --profile <kunde> falls Session abgelaufen)
  9. Pro-Kunden-Datei intern/capabilities/aws/av-<kunde>.md anlegen, Bestand pflegen
  10. In accounts Tabelle ergaenzen
  11. Erste Ressourcen anlegen (S3-Buckets, IAM-User, Bedrock-Aktivierung) und in pro-Kunde-Datei dokumentieren