Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

AWS

The DuraCloud service runs on Amazon Web Services cloud infrastructure. AWS is the datacenter used to manage all servers running DuraCloud software. Information about AWS security can be found at the following links:

Overview

The security approach is divided into two distinct spheres of responsibility

...

  1. Apache HttpServer is configured to require all requests to the three DuraCloud web applications (/duradmin, /durastore, and /duraservice) go over https.
  2. Below are the https enforcement rules configured in Apache. The X-Forwarded-Proto header is provided by AWS Elastic Load Balancers.

    Code Block
    
      ###
      # ensure 'duradmin' uses https
      ###
    
      RewriteCond %{REQUEST_URI} /duradmin
      RewriteCond %{SERVER_PORT} !^443$
      RewriteRule ^(.*)$RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule !/status https://%{SERVER_NAME}$1 [R=301,L]
    
      ###
      # require https for 'durastore' & 'duraservice' for external requests
      ###
    
      RewriteCond %{REQUEST_URI} ^(/durastore|/duraservice)
      RewriteCond %{SERVER_PORT} !^443$
      RewriteCond %{SERVER_NAME} !^localhost$
      RewriteCond %{SERVER_NAME} !^127.0.0.1$
      RewriteCond %{REMOTE_HOST} !^127.0.0.1$
      RewriteCond ${local-ip-map:%{REMOTE_HOST}} !^localhost$
      RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R=301,L]
    [L,R]

Application Security Implementation

...

DuraCloud leverages Spring's mechanism for wiring AuthN/Z into an application across servlet url patterns.
The following access rules are placed across the durastore and duraservice REST-APIs:

ROLE_ROOT

Panel
titleStore DuraStore REST Methods

Action

Role

Initialize Get Stores

ROLE_ROOTUSER

Get SpacesInitialize Security Users

ROLE_ROOT

Get Stores

ANONYMOUS if space ACL allows public read, else ROLE_USER

Get SpacesSpace

ROLE_ANONYMOUS if space 'open'ACL allows public read, else ROLE_USER

Get Space Properties

ROLE_ANONYMOUS if space 'open'ACL allows public read, else ROLE_USER

Get Space PropertiesACLs

ROLE_ANONYMOUS if space 'open'ACL allows public read, else ROLE_USER

Create Space

ROLE_USERADMIN

Set Space PropertiesACLs

ROLE_USERADMIN

Delete Space

ROLE_USERADMIN

Get Content

ROLE_ANONYMOUS if space 'open'ACL allows public read, else ROLE_USER

Get Content Properties

ROLE_ANONYMOUS if space 'open'ACL allows public read, else ROLE_USER

Store Content

ROLE_USER

Set Copy Content Properties

ROLE_USER

Delete Set Content Properties

ROLE_USER

Panel
titleService REST Methods
ServiceUSER Deployed Service Deployed Service Properties

Action

Role

Initialize Services

ROLE_ROOT

Initialize Security UsersDelete Content

ROLE_ROOT

Get Services

ROLE_USER

Get Audit LogROLE_ADMIN
Get ManifestROLE_USER
Get

ROLE_USER

Deploy Service

ROLE_USER

Update Service Configuration

ROLE_USER

UnDeploy Service

ROLE_USER

Panel
titleReport UI REST Methods
Get Latest Storage Report Report ListUSER ReportUSERSchedule Storage Get Deployed Services Report

Action

Role

Initialize DuraReport Application

ROLE_ROOT

Initialize Security Users

ROLE_ROOT

Storage Reports by SpaceROLE_USER
Get Storage Reports by StoreROLE_ADMIN

Get Storage

Reports for all Spaces in a Store

ROLE_

Get Storage Report Info

ROLE_USER

Start Storage Report

ROLE_USER

Cancel Storage Report

ROLE_USER

ADMIN
Get Bit Integrity ReportROLE_USER

Cancel Storage Report Schedule

ROLE_USER

Get Bit Integrity Report PropertiesROLE_USER

Get Completed Services ReportTasks

ROLE_USERADMIN

Perform TaskGet Completed Services Report List

ROLE_USER

Get Services Report

ROLE_USER

Panel
titleAdministrative UI REST Methods

ADMIN

Perform Task (restore-content, restore-snapshot)ROLE_ROOT

All ROLE_USER permissions are limited to spaces for which space ACLs permit read and/or write access

Action

Role

Initialize DurAdmin Application

ROLE_ROOT

Initialize Security Users

Roles

The fixed set of users/roles listed below are provided in DuraCloud. Each role in the list below represents a super set of the privileges of those above it.

  1. ROLE_ANONYMOUS
    • no username/password
  2. ROLE_USER
    • user created by DuraCloud-account admin
  3. ROLE_ADMIN
    • owner administrator of DuraCloud-account
  4. ROLE_SYSTEM
    • internal user for delegation requests
    ROLE_ROOT
    • DuraSpace personnel

User Management and Access Control

  1. In order for the administrator of a DuraCloud account to manage new users, an initial user with ROLE_ADMIN privileges is provided at start-up:
    • username: admin
    • password: changeme

...

  • Users are managed via the DuraCloud Management Console. In the Management Console, an account administrator has the ability to:
    1. Add and remove users to the DuraCloud account
    2. Create Groups and add users to groups in order to simplify access control
  • Access Control is managed at the space level
    • Within DuraCloud (via the UI or the REST API), an account administrator has the ability to define which users and groups have access to a space, as well as the type of access (read or write) that is available.