security.py needs to be smarter
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Launchpad itself |
High
|
Stuart Bishop |
Bug Description
security.py should be smarter and only change permissions when it needs to,
rather than its current method of resetting everything and rebuilding from
scratch. This would make it possible to run the script against a live
database in most cases
affects /products/launchpad
assignee stub
status confirmed
--
Stuart Bishop <email address hidden> http://
Canonical Ltd. http://
Changed in launchpad: | |
importance: | Untriaged → Wishlist |
Stuart Bishop (stub) wrote : | #1 |
Changed in launchpad-foundations: | |
assignee: | Stuart Bishop (stub) → nobody |
importance: | Low → High |
milestone: | none → 3.1.11 |
Changed in launchpad-foundations: | |
milestone: | 3.1.11 → none |
Tom Haddon (mthaddon) wrote : | #2 |
This is a virtual necessity now, especially given the drive towards continuous rollout. It has bitten us most recently with https:/
tags: | added: canonical-losa-lp |
Changed in launchpad-foundations: | |
assignee: | nobody → Stuart Bishop (stub) |
Changed in launchpad-foundations: | |
status: | Triaged → In Progress |
milestone: | none → 10.12 |
Fixed in db-stable r9977 <http://
tags: | added: qa-needstesting |
Changed in launchpad-foundations: | |
status: | In Progress → Fix Committed |
Tom Haddon (mthaddon) wrote : | #4 |
Is this a new option, or something that just happens automatically? Just wondering how we can apply this/test.
Its a new option - we can test it on qastaging: make the automatic
deploys run the --norevoke version only, and at the monthly deploy run
the full version when we test the full database patch story.
Fixed in db-stable r9984 <http://
Stuart Bishop (stub) wrote : | #7 |
So to be clear:
- Update code on database host
- Run security.py --no-revoke
- Update code on the rest of the systems
By granting the new permissions and not revoking old permissions, we no longer have a window where database permissions do not patch permissions required by running code.
If we want, after the update we can run normal security.py to revoke permissions that should no longer be needed, but I don't think this gains us anything and just makes it more likely to shoot ourselves in the foot.
Gary Poster (gary) wrote : | #8 |
Thank you Stuart. Have you called the LOSAs' attention to this? Alternatively, can a LOSA ack Stuart's message?
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad-foundations: | |
status: | Fix Committed → Fix Released |
This causes an outage of the login servers during upgrades.
security.py revokes all permissions and then resets then per config. This creates a window where the login servers do not have permission to read the tables they need to.