AWS CDK Bootstrap trotz s3:PutPublicAccessBlock Richtlinie ausführen
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.