Add GoogleDrive User Stories
Copied user stories from GoogleDocs format into user-story-template.rst format and submitting to repo for tracking. Change-Id: If4f6406594cba63bca8a3431b9d34ffff44a5f3c
This commit is contained in:
98
user-stories/draft/encryptedstorage.rst
Normal file
98
user-stories/draft/encryptedstorage.rst
Normal file
@@ -0,0 +1,98 @@
|
||||
Encrypted Storage
|
||||
==================
|
||||
|
||||
*Problem description*
|
||||
---------------------
|
||||
Each enterprise has its own data classification strategy. The types of data
|
||||
include: financial data, personal data, health data, confidential business
|
||||
data, etc. Some enterprise (especially in banking, finance and insurance
|
||||
industry) has stringent data requirements in order to be compliant with laws
|
||||
and regulations. For example, PCI DSS Requirement 3.4 states that credit card
|
||||
personal account number must be rendered unreadable anywhere it is stored
|
||||
(including portable digital media, backup media and logs). Applications
|
||||
(including database) that interact with these classes of information need to be
|
||||
able to specify encrypted storage requirements when the application is launched
|
||||
and interacts with some of these classes. The data must be encrypted in motion
|
||||
as well as at rest. The application should not require admin privileges to
|
||||
access encrypted storage.
|
||||
|
||||
In addition, proper key management process need to be in place. The keys used
|
||||
to encrypt/decrypt the data must be changed on a regular basis and the access
|
||||
of keys are restricted to authorized personnel only.
|
||||
|
||||
User Stories
|
||||
------------
|
||||
* As the Enterprise IT Manager, I must ensure the appropriate security for the HR
|
||||
department database with employee records that services several department
|
||||
applications. I would like to move the database into our companies private cloud
|
||||
so I don’t need to maintain the system it currently lives on. However, because of
|
||||
the critical nature of the information in the database our company policy does
|
||||
not allow this information to reside on any shared system in an unencrypted
|
||||
state. To be able to move the database into the private cloud I need to ensure
|
||||
that the stored data and all data in transit from/to the VM will be encrypted.
|
||||
While the HR Department would love to have improved uptime for their database,
|
||||
they are used to having to manually restart/reboot as needed and can live with
|
||||
this in the cloud as well.
|
||||
|
||||
* I am the Enterprise IT manager for an insurance company. My company maintains a
|
||||
database with insurer’s credit card records for annual renewal purpose. Our
|
||||
company would like to move the database into our OpenStack private cloud. In
|
||||
order to comply with company security policy, government laws and financial
|
||||
regulations, I need to ensure that information stored in the private cloud
|
||||
(including backup) is encrypted, and the keys used to encrypt the data are
|
||||
rotated/changed annually.
|
||||
|
||||
Usage Scenarios Examples
|
||||
------------------------
|
||||
None.
|
||||
|
||||
Opportunity/Justification
|
||||
-------------------------
|
||||
None.
|
||||
|
||||
Related User Stories
|
||||
--------------------
|
||||
* An application needs to be able to specify networking requirements
|
||||
* An application needs to be able to specify workload isolation requirements
|
||||
|
||||
*Requirements*
|
||||
--------------
|
||||
* A block & object storage option that includes encryption / decryption at the VM
|
||||
source.
|
||||
* A method for the application to specify that it requires a block storage
|
||||
system that includes encryption / decryption at the VM source.
|
||||
* OpenStack services to enforce the storage requirements for the application
|
||||
* A method for changing the key used to encrypt/decrypt the data after a specific
|
||||
period of time.
|
||||
*The database application needs to be able to specify that it needs an encrypted
|
||||
storage system that supports encryption / decryption at the VM source, in
|
||||
addition to at rest.
|
||||
*The storage system must be able to handle both Reads/Writes of persistent
|
||||
encrypted block storage in excess of 1TB device to be backed up nightly.
|
||||
|
||||
*Gaps*
|
||||
------
|
||||
**Cinder issues:**
|
||||
* The basic storage encryption functionality looks like it may exist, but
|
||||
requires admin status. Creating encrypted volumes should not require admin
|
||||
status.
|
||||
|
||||
*Affected By*
|
||||
-------------
|
||||
At the Hong kong summit there was a talk on barbican/cinder/nova for this type of
|
||||
functionality. Don’t know if it was successfully integrated into OpenStack yet.
|
||||
https://www.openstack.org/summit/openstack-summit-hong-kong-2013/session-videos/p
|
||||
resentation/encrypted-block-storage-technical-walkthrough
|
||||
|
||||
* There is a spec located at: https://wiki.openstack.org/wiki/VolumeEncryption
|
||||
for some early work and the current documentation is located at:
|
||||
http://docs.openstack.org/juno/config-reference/content/section_create-encrypted-
|
||||
volume-type.html where it implies that admin privilege is required.
|
||||
|
||||
*External References*
|
||||
---------------------
|
||||
None.
|
||||
|
||||
Glossary
|
||||
========
|
||||
None.
|
||||
85
user-stories/draft/rolebasedaccess.rst
Normal file
85
user-stories/draft/rolebasedaccess.rst
Normal file
@@ -0,0 +1,85 @@
|
||||
Role Based Access
|
||||
=================
|
||||
|
||||
*Problem description*
|
||||
---------------------
|
||||
OpenStack doesn’t have a hierarchical permission structure that allows an
|
||||
Operator to assign different permissions for different activities or access to
|
||||
resources to different users.
|
||||
|
||||
User Stories
|
||||
------------
|
||||
*As a cloud operator I want to enable my team to be able to see all Admin level
|
||||
alerts, but not to be able to change their status. That requires review and
|
||||
approval by the IT manager.
|
||||
|
||||
Usage Scenarios Examples
|
||||
------------------------
|
||||
None.
|
||||
|
||||
Opportunity/Justification
|
||||
-------------------------
|
||||
Role Based Access is a basic Enterprise requirement. This capability enables
|
||||
Enterprise IT Managers to set read and write permissions to different elements of
|
||||
the IT infrastructure for different people/positions in the organization.
|
||||
Enterprise security requires separate access UI/ API for Network, Security,
|
||||
Storage management, User Management, and Instance management.
|
||||
|
||||
Related User Stories
|
||||
--------------------
|
||||
None.
|
||||
|
||||
*Requirements*
|
||||
--------------
|
||||
* Enterprise security requires separate access UI/ API for Network, Security,
|
||||
Storage management, User Management, and Instance management.
|
||||
* Includes grouping actions into roles, assign roles to users, create hierarchy
|
||||
of roles, etc.
|
||||
* OpenStack includes an enforcement piece of access control, but no management
|
||||
piece.
|
||||
* Very important that admin type roles need to be tested thoroughly because of
|
||||
the code bleed-in where actions are exposed if "is-admin".
|
||||
* As we expand the roles need some tool that can report out on what access the
|
||||
newly defined role has - want to make sure you don’t inadvertently create a
|
||||
superuser problem (newly created role inherit these rights)
|
||||
|
||||
*Gaps*
|
||||
------
|
||||
**Keystone**
|
||||
* Need to add a new role.
|
||||
* Modify code that makes checks such as context admin, is-admin.
|
||||
**All Projects**
|
||||
* Need to review code in other projects to find hardcoded reference to Admin and
|
||||
replace them with Keystone references.
|
||||
* Modify the policy.json file to use this new role. Add test cases to confirm
|
||||
behavior is as expected. Code in all projects need to be searched for is-admin
|
||||
type tests and code modified to ensure that admin-read-only is tested as
|
||||
necessary.
|
||||
* One approach: Expose the policy.json files of each of the projects via horizon
|
||||
and allow it to be modified.
|
||||
* May need a bug to fix such as: is-admin evaluations to use only roles in the
|
||||
code, towards making policy.json the true controller.
|
||||
**Horizon**
|
||||
*To expose policy.json via Horizon will need to be allowed to only cloud-admins,
|
||||
and any change checked for syntactic correctness at the least.
|
||||
* Further Horizon today is "pulling" the policy files to determine which
|
||||
buttons/links exposed to users to guide them down the correct path.
|
||||
|
||||
*Affected By*
|
||||
-------------
|
||||
None.
|
||||
|
||||
*External References*
|
||||
---------------------
|
||||
From looking at other solutions, generally there are 3 immutable system roles:
|
||||
administrator, read-only, no-access. With support for specifying roles on objects
|
||||
and their hierarchy. There is a notion of "folder", data center, host, VMs on a
|
||||
host, disk etc. Some actions are sort of atomic -- create a disk. While others
|
||||
encompass multiple steps, needing a variety of privileges. Thus the role that
|
||||
permits the complex action must contain the full set of necessary privileges. For
|
||||
example launching a VM needs access to the datastore, OS images files, disks,
|
||||
ability to create them and/or read an existing one etc.
|
||||
|
||||
Glossary
|
||||
========
|
||||
None.
|
||||
71
user-stories/draft/serviceseparation.rst
Normal file
71
user-stories/draft/serviceseparation.rst
Normal file
@@ -0,0 +1,71 @@
|
||||
OpenStack Service Separation
|
||||
============================
|
||||
|
||||
*Problem description*
|
||||
---------------------
|
||||
We need separation between services to mitigate for library conflicts. This way
|
||||
instead of doing "openstack upgrade" we can do "nova upgrade" today, "neutron
|
||||
upgrade" tomorrow and on, and that approach simplifies things tremendously,
|
||||
because potential fallback is both easy and fast, and impact is much lower.
|
||||
|
||||
Biggest problems in upgradeable deployments are dependencies and speed of
|
||||
upgrade. Dependencies means, in case of shared libraries, several services might
|
||||
require same library, but often at different versions between major openstack
|
||||
releases. This will cause conflicts, and require us to do “all or nothing”
|
||||
upgrade. Sometimes we would like to use several maintenance windows to upgrade
|
||||
our deployment one service at the time. Also, we want this maintenance windows to
|
||||
be as short as possible, hence speed of deployment changes.
|
||||
|
||||
User Stories
|
||||
------------
|
||||
* As an OpenStack Operator, I select services to upgrade based upon the new
|
||||
features that have been implemented and bugs fixed. This will lead to different
|
||||
versions of Services running together my deployment. Different Services will be
|
||||
using different versions of system and 3rd party libraries.
|
||||
|
||||
Usage Scenarios Examples
|
||||
------------------------
|
||||
* Containers are new way to deploy microservices. Ever heard of Docker? Who
|
||||
didn’t? We want to utilize containers flexibility, speed of deployment, and most
|
||||
importantly, separation of services. With each service having its own library
|
||||
base, we don’t have conflicts, and we can upgrade just one service at the time
|
||||
without disruption of others.
|
||||
|
||||
* Kolla is project which does exactly that – containerize your openstack
|
||||
services. By using Kolla you can utilize flexible container to be configured in a
|
||||
way you ran your services for years, or, for those who want to start openstack
|
||||
adventure, quick and easy way to set up production ready upgradable openstack
|
||||
using ansible.
|
||||
|
||||
Opportunity/Justification
|
||||
-------------------------
|
||||
None.
|
||||
|
||||
Related User Stories
|
||||
--------------------
|
||||
None.
|
||||
|
||||
*Requirements*
|
||||
--------------
|
||||
* Ability to upgrade 1 OpenStack service, without having to upgrade all OpenStack
|
||||
services
|
||||
* Maintain overall system reliability when only 1 Service is upgraded
|
||||
* Minimal or no downtime during upgrade
|
||||
|
||||
*Gaps*
|
||||
------
|
||||
None currently known.
|
||||
|
||||
*Affected By*
|
||||
-------------
|
||||
Real value can be realized using TripleO to deploy Kolla-based OpenStack. With
|
||||
TripleO’s baremetal and config management, and Kolla containers, deploying large
|
||||
scale, upgradable, production ready OpenStack becomes an achievable use case.
|
||||
|
||||
*External References*
|
||||
---------------------
|
||||
None.
|
||||
|
||||
Glossary
|
||||
========
|
||||
None.
|
||||
Reference in New Issue
Block a user