knowit / kompetansekartlegging-app

Kompetansekartlegging for Knowit
4 stars 9 forks source link

Turn off new default blockPublicAccess settings #192

Closed andersrebner closed 1 year ago

andersrebner commented 1 year ago

Skrur av alle blockPublicAccess-instillinger på KompetanseHostingBucket etter AWS-oppdatering Innstilligene og resulterende bucket policy blir nå lik som den har vært (allow s3:getObject for *).

https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html#access-control-block-public-access-options

closes #191

krisstam commented 1 year ago

Kan du forklare feilen litt bedre?

Jeg tror ikke vi har sensitive data i disse s3-bøttene, men jeg er fremdeles litt iffy på det å ha public-access. Jeg tror sånn front-enden er hostet i f.eks. Prod-b eller dev-b er at vi har access gjennom CloudFront, så bøttene er fremdeles BlockAllPublicAccess.

krisstam commented 1 year ago

VI har ikke CloudFront satt i CDK, fordi det krever noe styr gjennom Route53 som også ikke er satt i CDK, så derfor er det manuelle steg.

Men det er mulig vi kan ha denne regelen for dev-miljøer/test-miljøer.

krisstam commented 1 year ago

Hmm, kan se ut som om jeg husker feil :+1: Lenge siden jeg satt opp hostingen for front-enden 😅

andersrebner commented 1 year ago

@krisstam Beskrev det (forhåpentligvis) bedre på issuet #191 😅

Ny default i AWS er at block public access enables på buckets som opprettes. Når man nå deployer til en AWS-konto for første gang (slik at S3-bucket opprettes), f.eks. til sandbox, vil frontend deploy feile med meldingen: API: s3:PutBucketPolicy Access Denied.

Eksempel fra GitHub Actions som feiler her (vet ikke om du kan se det, men man får ikke mer ut av det enn meldingen over)

Ny default block public access vil med andre ord ikke påvirke dev eller prod siden bucket allerede eksisterer. Sammenligner jeg bucket fra dette oppsettet med bucket i dev og prod så ser de for meg helt like ut. Alle block public access-innstillinger er av, bucket policy og ACL er lik. Ser nå at bucket ownership har endret seg fra Object writer til Bucket owner enforced, kan rette på det

krisstam commented 1 year ago

@krisstam Beskrev det (forhåpentligvis) bedre på issuet #191 😅

Ny default i AWS er at block public access enables på buckets som opprettes. Når man nå deployer til en AWS-konto for første gang (slik at S3-bucket opprettes), f.eks. til sandbox, vil frontend deploy feile med meldingen: API: s3:PutBucketPolicy Access Denied.

Eksempel fra GitHub Actions som feiler her (vet ikke om du kan se det, men man får ikke mer ut av det enn meldingen over)

Ny default block public access vil med andre ord ikke påvirke dev eller prod siden bucket allerede eksisterer. Sammenligner jeg bucket fra dette oppsettet med bucket i dev og prod så ser de for meg helt like ut. Alle block public access-innstillinger er av, bucket policy og ACL er lik. Ser nå at bucket ownership har endret seg fra Object writer til Bucket owner enforced, kan rette på det

Det har nok noe med saken å gjøre for testene i det minste, ja.

Jeg ser at vi har Public buckets for Dev og Prod, jeg er litt usikker på om dette egentlig er Best Practice (Ganske sikker på at det ikke er det 😅), men det var vel det jeg endte opp med å gjøre for det virket den gang. Mulig jeg burde skrive et Issue på det for å se om vi kan fjerne public access til bøtten og heller bruke CloudFront sin Origin Access Control, slik at man kun får tak i bøtten via CloudFront (https://aws.amazon.com/about-aws/whats-new/2022/08/amazon-cloudfront-origin-access-control/), men det haster ikke.