Changes between Version 2 and Version 3 of FeddConfigExamples


Ignore:
Timestamp:
Dec 11, 2008 1:53:23 PM (15 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FeddConfigExamples

    v2 v3  
    55== Static Access Only on Users ==
    66
    7 This is the simplest configuration of `fedd`, used to allow users of other testbeds to use resources from yours using pre-configured projects.  The layout assumes that for each [FeddAbout#GlobalIdentifiers:Three-levelName] three-level name] you are willing to allow to use your testbed, you have set up a project that already has proper keys installed.  Because no local projects or local users need to be modified, `fedd` does not need access to boss.
     7This is the simplest configuration of `fedd`, used to allow users of other testbeds to use resources from yours using pre-configured projects.  The layout assumes that for each [FeddAbout#GlobalIdentifiers:Three-levelName three-level name] you are willing to allow to use your testbed, you have set up a project that already has proper keys installed.  Because no local projects or local users need to be modified, `fedd` does not need access to boss.
    88
    99A commented fedd.conf (installed in `/usr/local/etc/fedd.conf`) on `users.isi.deterlab.net` might look like this:
    1010
    1111{{{
     12[globals]
     13# Identify this fedd by the fedid encoded as a certificate file (user file protections to protect it)
     14 These types of node are not accessible by everyone
     15restricted: rpc_30cert_file: /usr/local/etc/fedd/fedd.pem
     16# Provide service on port 23235
     17services: 23235
     18
    1219[access]
    1320# Keep access state (which experiments are live) in this file
     
    2532testbed: https://users.isi.deterlab.net:23235
    2633
    27 # The database that maps requester to local acces projects
     34# The database that maps requester to local access projects (shown below)
    2835accessdb: /usr/local/etc/fedd/deter_access
    2936
    3037[allocate]
     38# do not check allocations.  Assume that the static configuration of projects is correct.
    3139allocation_level: none
     40# this could really be omitted.  Without modifications, there's no state to keep
     41allocate_state: /var/db/fedd/deter_allocate.state
     42}}}
     43
     44In addition the [FeddDatabases#AccessComponentAccessDB access component accessdb] in `/usr/local/etc/fedd/deter_access` might be similar to this one (the rules could be more explicit or looser, for example):
     45
     46{{{
     47# Overrides for the connector image and type
     48attribute: connectorImage value: FBSD7-TVF
     49attribute: connectorType value: pc3000_tunnel
     50
     51# map users from the given testbed in the Deter group into the local Federation project.  Experiments will
     52# be created by the local user "fedd" and accessable by users with the same name as requesters.  This
     53# will require coordination.
     54(fedid:ce90957dd5b7d20f9c3890c4599313b7f1cf31ea, Deter, <any>) -> (Federation, fedd, <same>)
     55}}}
     56
     57== Dynamic Keying only on Boss ==
     58
     59In this case there is still one running `fedd`, but it runs on `boss`, where it can add keys to user accounts and change project permissions.  While projects and users need to be kept in sync, the user keys need not.  The changes here are largely in the allocation section of the global configuration.
     60
     61The configuration assumes that patched versions of `addpubkey` and `grantnodetype` have been installed as `taddpubkey` and `tgrantnodetype` in `/usr/testbed/sbin` as described in the [FeddDownload#AdditionalScripts installation section].
     62
     63{{{
     64[globals]
     65# Identify this fedd by the fedid encoded as a certificate file (user file protections to protect it)
     66cert_file: /usr/local/etc/fedd/fedd.pem
     67# Provide service on port 23235
     68services: 23235
     69
     70[access]
     71# Keep access state (which experiments are live) in this file
     72# Be sure it is writeable by the fedd user
     73access_state: /var/db/fedd/deter_access.state
     74
     75# Parameters for remote fedds to instantiate experiments
     76boss: boss
     77ops: users
     78domain: .isi.deterlab.net
     79fileserver: fs
     80eventserver: event-server
     81
     82# This machine's URI to discriminate proxy requests (NB: this runs on boss)
     83testbed: https://boss.isi.deterlab.net:23235
     84
     85# The database that maps requester to local access projects (shown below)
     86accessdb: /usr/local/etc/fedd/deter_access
     87
     88[allocate]
     89# Allow keys and node types to be extended.
     90allocation_level: dynamic_keys
     91
     92# Keep track of keys added and node types granted so that they can be removed when done.
    3293allocate_state: /var/db/fedd/deter_allocate.state
    3394
    34 [globals]
    35 cert_file: /usr/local/etc/fedd/fedd.pem
    36 services: 23235
     95# Use the extended commands
     96grantnodetype: /usr/testbed/sbin/tgrantnodetype
     97addpubkey: /usr/testbed/sbin/taddpubkey
     98}}}
     99
     100In addition the [FeddDatabases#AccessComponentAccessDB access component accessdb] in `/usr/local/etc/fedd/deter_access` might be similar to this one (the rules could be more explicit or looser, for example):
     101
     102{{{
     103# Overrides for the connector image and type
     104attribute: connectorImage value: FBSD7-TVF
     105attribute: connectorType value: pc3000_tunnel
     106
     107# Nodes of this type are not generally accessible
     108restricted: rpc_3000
     109
     110# Additional keys may be added to these groups.  Note that when a user with emulab-ops as the project in their
     111# three-level name accesses the testbed, the fedd project will be given access to the restricted node type
     112# rpc_3000.  Requesters with Deter as the project will be unable to successfully request access to such nodes.
     113(fedid:ce90957dd5b7d20f9c3890c4599313b7f1cf31ea, Deter, <any>) -> (Federation, fedd, <same>)
     114(fedid:ce90957dd5b7d20f9c3890c4599313b7f1cf31ea, emulab-ops, <any>) -> (Federation, fedd:rpc_3000, <same>)
    37115
    38116}}}
     117
     118== Dynamic Keying with Distributed Operation on Users and Boss ==
     119
     120In this case two `fedd`s are running.  The one on users accepts and evaluates access requests but calls out to the `fedd` on boss to do the manipulation of local testbed state.  Boss may choose to firewall all other hosts (except users) away from the fedd port, though the    `fedd` access controls will also protect access.  The situation looks like this:
     121