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 four DuraCloud web applications (/duradmin, /durastore, /duraservice, and /duraboss) 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
      ###
    
      RewriteEngine On
    RewriteCond %{REQUEST_URI} /duradmin
      RewriteCond %{SERVER_PORT} !^443$
      RewriteRule ^(.*)$HTTP:X-Forwarded-Proto} !https
    RewriteRule !/status https://%{SERVER_NAME}$1 [R=301,L]
    
      ###
      # try to require https for 'durastore', 'duraservice', & 'duraboss' for
      # external requests
      ###
    
      RewriteCond %{REQUEST_URI} ^(/durastore|/duraservice|/duraboss)
      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:

...

titleInitialization REST Methods - Common across all applications

...

Action

...

Role

...

Is Initialized

...

ROLE_ANONYMOUS

...

Initialize

...

Initialize Security Users

ROLE_ROOT

Panel
titleDuraStore REST Methods
Tasks

Action

Role

Get Stores

ROLE_USER

Get Spaces

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Get Space

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Get Space Properties

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Get Space ACLs

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Create Space

ROLE_ADMIN

Set Space Properties

ROLE_USER

Set Space ACLs

ROLE_ADMIN

Delete Space

ROLE_ADMIN

Get Content

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Get Content Properties

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Store Content

ROLE_USER

Copy Content

ROLE_USER

Set Content Properties

ROLE_USER

Delete Content

ROLE_USER

Get Audit LogROLE_ADMIN

Perform Task

ROLE_ADMIN

Panel
titleDuraService REST Methods
Role Services ServiceGet Deployed Service PropertiesROLE_ADMIN

Action

Get ManifestROLE_USER
Get

ROLE_USER

Get Deployed Service

ROLE_USER

Storage Reports by SpaceROLE_USER

Deploy Service

ROLE_ADMIN

Update Service Configuration

ROLE_ADMIN

UnDeploy Service

Panel
titleDuraBoss REST Methods
Latest Report Report List Storage ADMIN Storage InfoADMINPerform an Executor ActionROLE_ADMIN

Action

Role

Get Storage Reports by StoreROLE_ADMIN

Get Storage

Reports for all Spaces in a Store

ROLE_ADMIN
Get Bit Integrity ReportROLE_USER
Get Bit Integrity Report PropertiesROLE_

Start Storage Report

ROLE_ROOT

Cancel Storage Report

ROLE_ROOT

Schedule Storage Report

ROLE_ROOT

Cancel Storage Report Schedule

ROLE_ROOT

USER

Get TasksGet Deployed Services Report

ROLE_ADMIN

Get Completed Services Report

ROLE_ADMIN

Get Completed Services Report List

ROLE_ADMIN

Get Services ReportPerform Task

ROLE_ADMINGet Executor Status

ROLE_ADMIN

Get Supported Executor Actions

ROLE_ADMIN

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

Shutdown Executor

ROLE_ROOT

Create Initial Audit Log

ROLE_ROOT

Get Audit Logs

ROLE_ADMIN

Shutdown Auditor

ROLE_ROOT

Get Content Manifest

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

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.

...

  • 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.