add read-only mode for gateways #1447
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#1447
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I want to host my blog and other publicly-readable documents on a grid like the Public Test Grid. The operators of the Public Test Grid gateway recently shut it down:
http://tahoe-lafs.org/pipermail/tahoe-dev/2011-July/006572.html
A potentially good way to run the Public Test Grid, and still allow people to experiment with it, and allow me to host my blog on it, while deterring people from using it as a publishing platform for their controversial files, would be to put the public gateway into read-only mode.
I propose to add a configuration option to the "client" (a.k.a. "gateway") section of tahoe.cfg to make a gateway read-only.
We had talked about making it so the gateway would offer read-only service on one port and read-write service on a different port, but after more reflection I would rather not do that for now. It would be easy for users to misunderstand and think that Tahoe-LAFS was somehow going to prevent unauthorized users from using the more privileged port, when in fact the users would have to set up firewall rules and/or HTTP-level proxies themselves to prevent unauthorized users from connecting to the more privileged port. Also, I have never yet wanted a single gateway process to serve both kinds of access, so this may be a case of YAGNI. In any case, it will definitely be simpler to implement a gateway-wide read-only policy.
This is related to #587 (gateways provide ambient upload authority). The problem is the same in both cases: gateways provide ambient authority to write (upload) data. This ticket is about a partial solution: make it so you can configure the gateway so that no user can ever write or upload anything. That ticket is, I interpret, about a better, more capability-oriented solution: make it so the requests the user makes to write or upload something come with authorization showing that the gateway should allow them to do so. This also seems to be closely related to the issues of accounting -- #666.
Implementing this ticket would make it safe to turn on CORS (#1215), for read-only gateways.
Replying to zooko:
That would be simpler to implement, yes. OTOH, the SFTP interface requires a login and uses a secure connection, so it isn't subject to the objection above about users having to authenticate access to the privileged port externally to Tahoe. So, we might want to have a configuration option to enable read/write SFTP while disabling other read/write access. But I agree that doesn't need to be part of an initial implementation of this ticket.
This would be particularly useful for users of Tahoe-LAFS-on-S3, who are subject to charges for all data stored, and so could be charged more than they expect if they provide access to a read/write gateway.
(In that case the gateway holds the S3 secrets, so provided those secrets are kept secure, attackers cannot store data in the user's S3 bucket other than via such a gateway.)Correction: the secrets are held on the storage server, and anyone with the introducer FURL can upload. Hmm. So we might also need to fix #860 and make the S3 introducer's FURL unguessable.