-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Set only necessary permissions for node lambda functions #23
Comments
Ovo takodjer treba osigurati da backend iz jednog workspace nikako ne moze doci do stages koji su vezani za neki drugi workspace. |
Maknuti po kodu nagomilane: |
Krenuo sam sa ws lambdama, implementacija je u gore navedenom commitu. Na pocetku je potrebno napomenuti da nemaju svi servisi iste opcije permissiona. Npr za invokanje lambdi se ne moze dodati condition po tagovima, cijeli popis svih servisa i opcija je dostupan ovdje. Permissione sam testirao rucno i preko iam policy simulatora. Prva je ws_handler lambda koja dobiva requeste od API gatewaya i invoka projektne lambde.
Lambdi dajem pravo da invoka lambde cije je ime template
Tu se ponavljaju prava za dynamodb tablicu i logove, i dodatno je tu |
Sljedeca je CLI rola. Njezina prava su:
Njoj dajem prava za pisanje u s3 buckete cije je ime teamplatea Za log grupe koristim tagove i dajem prava samo za one koji imaju key i workspace tag, sto ce ponovno biti sve log grupe tog nodea. Dodatno ce se ovi permissioni jos vise suziti u |
preparation for more granulated lambda permissions in #23
add separate module for node functions to encapsulate permissions for #23
Dodao sam permissione za security i authorizer lambdu. Security ima samo permissione za logove i assume cli-role.
Authorizer ima permissione za logove:
Ove preostale tri lambde - setup, deploy i destroy su se malo zakomplicirale jer se tu koristi jako puno permissiona pa gledam kako je najbolji nacin to posloziti. |
A |
Ah, glup sam. :D Svi projekti i stageovi ce imati isti node id, u pravu is. :) |
Prava za lambde koje koriste terraform su malo opsirnija i teze je doci do njih. Trebamo ukljuciti sve api pozive koje radi terraform. Tu sam si pomogao sa IAM access analyzerom i cloudtrailom koji logira sve akcije pa tamo mogu vidjeti kakve sve permissione koristi koja rola, no nije savrseno pa ima malo metode pokusaja i pogreske. Za deploy lambdu ima malo vise permissiona, no to je jedini nacin da ne obuhvacamo stvari koje ne bi trebali.
|
Permissionsi za destroy:
|
I evo na kraju i setup:
S time sam zavrsio sve lambde. Sad samo moramo pripaziti kada nesto mjenjamo da promjene uskladimo sa permissionima. |
Currently in terraform all lambdas and roles have all permissions. We should probably narrow this down to only necessary permissions.
The text was updated successfully, but these errors were encountered: