Das Framework meiner Wahl zur Verwaltung von AWS Ressourcen ist das AWS CDK. Um das Framework nutzen zu können, muss pro Account und Region einmalig das AWS CDK Bootstrap mit dem Befehl

cdk bootstrap aws://ACCOUNT-NUMBER/REGION

ausgeführt werden. Bei mir auf Arbeit scheitert das Bootstrapping allerdings mit der Fehlermeldung:

CDKToolkit | 18:29:57 | CREATE_FAILED        | AWS::S3::Bucket         | StagingBucket API: s3:PutPublicAccessBlock Access Denied

Ursache

Die Ursache für den Fehler ist eine unternehmensweite Richtlinie, die verhindert, dass Entwickler selbstständig ein komplettes S3 Bucket für die Öffentlichkeit freigeben können und sich stattdessen mit den Administratoren absprechen müssen.

Beim Bootstrapping wird versucht, ein CloudFormation Template auszuführen, das unter anderem ein S3 Bucket anlegt und explizit versucht, das bereits standardmäßig private S3 Bucket auf privat zu stellen - was allerdings an der besagten Richtlinie scheitert.

Lösung

Das Problem kann mittlerweile durch einen Parameter des Befehls gelöst werden:

cdk bootstrap --public-access-block-configuration false aws://ACCOUNT-NUMBER/REGION

Vor einiger Zeit war es noch nötig, das CloudFormation Template herunterzuladen und manuell einzuspielen. Dabei kann eine entsprechende Variable gesetzt werden, die dafür sorgt, dass die problematische Konfiguration übersprungen wird.