GCP - AppEngine Privesc
App Engine
App Engine рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ:
appengine.applications.get
, appengine.instances.get
, appengine.instances.list
, appengine.operations.get
, appengine.operations.list
, appengine.services.get
, appengine.services.list
, appengine.versions.create
, appengine.versions.get
, appengine.versions.list
, cloudbuild.builds.get
,iam.serviceAccounts.actAs
, resourcemanager.projects.get
, storage.objects.create
, storage.objects.list
appengine.applications.get
, appengine.instances.get
, appengine.instances.list
, appengine.operations.get
, appengine.operations.list
, appengine.services.get
, appengine.services.list
, appengine.versions.create
, appengine.versions.get
, appengine.versions.list
, cloudbuild.builds.get
,iam.serviceAccounts.actAs
, resourcemanager.projects.get
, storage.objects.create
, storage.objects.list
рдпреЗ gcloud
cli рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдРрдк рдХреЛ рдбрд┐рдкреНрд▓реЙрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВред рд╢рд╛рдпрдж get
рдФрд░ list
рд╡рд╛рд▓реА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЯрд╛рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред
рдЖрдк https://github.com/GoogleCloudPlatform/python-docs-samples/tree/main/appengine рдкрд░ рдкрд╛рдпрдерди рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдРрдк рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо default
рд╣реЛрдЧрд╛, рдФрд░ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ 1 рдЙрджрд╛рд╣рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдФрд░ рдПрдХ рджреВрд╕рд░рд╛ рдРрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, app.yaml
рдореЗрдВ, рд░реВрдЯ рдХреБрдВрдЬреА рдХреЗ рдорд╛рди рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдмрджрд▓реЗрдВ service: my-second-app
рдХрдо рд╕реЗ рдХрдо 10-15 рдорд┐рдирдЯ рджреЗрдВ, рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ deploy another of times рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдХреБрдЫ рдорд┐рдирдЯ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
рдпрд╣ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, App Engine рдбрд┐рдлрд╝реЙрд▓реНрдЯ SA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ URL рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ https://<proj-name>.oa.r.appspot.com/
рдпрд╛ https://<service_name>-dot-<proj-name>.oa.r.appspot.com
рд╕рдордХрдХреНрд╖ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ AppEngine рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рд▓реЗрдХрд┐рди рдПрдХ рдирдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рд╡рд░реНрддрдорд╛рди App Engine рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА AppEngine рдХреЛ рд╕рдордЭреМрддрд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреБрдорддрд┐ appengine.applications.update
рдФрд░ actAs рд╣реИ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддреЛ рдЖрдк AppEngine рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
appengine.instances.enableDebug
, appengine.instances.get
, appengine.instances.list
, appengine.operations.get
, appengine.services.get
, appengine.services.list
, appengine.versions.get
, appengine.versions.list
, compute.projects.get
appengine.instances.enableDebug
, appengine.instances.get
, appengine.instances.list
, appengine.operations.get
, appengine.services.get
, appengine.services.list
, appengine.versions.get
, appengine.versions.list
, compute.projects.get
рдЗрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, App Engine рдХреЗ рдлреНрд▓реЗрдХреНрд╕рд┐рдмрд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдорд╛рдирдХ рдирд╣реАрдВ)ред рдХреБрдЫ list
рдФрд░ get
рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
appengine.applications.update
, appengine.operations.get
appengine.applications.update
, appengine.operations.get
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб SA рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЧреВрдЧрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЛ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХреЛ рдЪреБрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
appengine.versions.getFileContents
, appengine.versions.update
appengine.versions.getFileContents
, appengine.versions.update
рдЗрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдпрд╛ рдХреНрдпрд╛ рдпреЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рдЗрд╕ рдкрд░ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рдЖрдк рдХреЛрдб рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХреЗрд╡рд▓ рдХреЛрдб рдпрд╛ рдПрдХ рдХрд╛ IAM рднреВрдорд┐рдХрд╛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╢рд╛рдпрдж рдмрдХреЗрдЯ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдмрджрд▓рдХрд░??)ред
рдмрдХреЗрдЯ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐
рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, appengine рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рдмрдХреЗрдЯ рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдирд╛рдо рд╣реИ: staging.<project-id>.appspot.com
ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдмрдХреЗрдЯ рдХреЛ рдкреВрд░реНрд╡-рдЯреЗрдХрдУрд╡рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ GCP рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ appspot.com
рдбреЛрдореЗрди рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдХреЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдмрдХреЗрдЯ рдкрд░ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ AppEngine рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЬреБрдбрд╝реЗ SA рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдХреЗрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЬрд╛рдП рдФрд░ рдЬрдм рднреА рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреЛрдб рдХреЛ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕ рддрд░рд╣, рдЗрд╕ рдХреЛрдб рд╕реЗ рдмрдирд╛рдП рдЧрдП рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдмреИрдХрдбреЛрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдЧрд╛ред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ PoC рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦреЗрдВ:
рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐
рд╣рд╛рд▓рд╛рдВрдХрд┐ App Engine рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рдЕрдВрджрд░ рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдБ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рднрд▓реЗ рд╣реА рдЖрдк рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЗ рдЕрдВрджрд░ рдЫрд╡рд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдФрд░ App Engine рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рддрд╛рдХрд┐ рдПрдХ рдирдпрд╛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП) рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрдХреЗрдЯ рдХреЗ рд╕рд╛рде рд░реЗрд╕ рдХрдВрдбреАрд╢рди рд╣рдорд▓реЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреЛрдб рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
Last updated