Commit Graph

21 Commits

Author SHA1 Message Date
Rohit Yadav f30c52a16c CLOUDSTACK-8562: DB-Backed Dynamic Role Based API Access Checker
This feature allows root administrators to define new roles and associate API
permissions to them.

A limited form of role-based access control for the CloudStack management server
API is provided through a properties file, commands.properties, embedded in the
WAR distribution. Therefore, customizing API permissions requires unpacking the
distribution and modifying this file consistently on all servers. The old system
also does not permit the specification of additional roles.

FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+Role+Based+API+Access+Checker+for+CloudStack

DB-Backed Dynamic Role Based API Access Checker for CloudStack brings following
changes, features and use-cases:
- Moves the API access definitions from commands.properties to the mgmt server DB
- Allows defining custom roles (such as a read-only ROOT admin) beyond the
  current set of four (4) roles
- All roles will resolve to one of the four known roles types (Admin, Resource
  Admin, Domain Admin and User) which maintains this association by requiring
  all new defined roles to specify a role type.
- Allows changes to roles and API permissions per role at runtime including additions or
  removal of roles and/or modifications of permissions, without the need
  of restarting management server(s)

Upgrade/installation notes:
- The feature will be enabled by default for new installations, existing
  deployments will continue to use the older static role based api access checker
  with an option to enable this feature
- During fresh installation or upgrade, the upgrade paths will add four default
  roles based on the four default role types
- For ease of migration, at the time of upgrade commands.properties will be used
  to add existing set of permissions to the default roles. cloud.account
  will have a new role_id column which will be populated based on default roles
  as well

Dynamic-roles migration tool: scripts/util/migrate-dynamicroles.py
- Allows admins to migrate to the dynamic role based checker at a future date
- Performs a harder one-way migrate and update
- Migrates rules from existing commands.properties file into db and deprecates it
- Enables an internal hidden switch to enable dynamic role based checker feature

Deprecate commands.properties

- Fixes apidocs and marvin to be independent of commands.properties usage
- Removes bundling of commands.properties in deb/rpm packaging
- Removes file references across codebase

Reviewed-by: John Burwell <john.burwell@shapeblue.com>
QA-by: Boris Stoyanov <boris.stoyanov@shapeblue.com>

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-04-25 14:52:02 +05:30
Ilia Shakitko 50dd37fcc9 GetUsageRecordsCmd - NewInputFormat for START_DATE and END_DATE (with time; backward capabile)
This closes #191

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-25 02:49:21 +02:00
Hugo Trippaers cf4ff03c90 CID-1191682 Fix missing break statement 2014-09-19 08:28:42 +02:00
Koushik Das 4e07dd1dc4 CLOUDSTACK-7581: Empty 'ID' parameters allowed in API calls
Fix is to fail API calls with empty 'id' parameter value upfront rather than going ahead and failing with NPE later on
2014-09-18 17:10:25 +05:30
Santhosh Edukulla 19ffc93e2e Fixed few coverity reported issues:Aug22 2014 2014-08-21 17:09:27 +05:30
Min Chen a216046191 CLOUDSTACK-7165:[Automation] NPE observed during restart and expunge VM. 2014-07-25 15:51:47 -07:00
Santhosh Edukulla 97d296bfbd Fixed Coverity reported performance issues like inefficient string concatenations, wrong boxing or unboxing types, inefficent map element retrievals
Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-07-01 22:06:25 +02:00
Nitin Mehta c2a0fb4e52 CLOUDSTACK-6895: 1. Populate firstclass entities as uuids in the context instead of dbids for performance.
2. Add ctxDetails in the ParamGenericValidationWorker to avoid warning for api validation
3. Add some missing events.
4. Correcting mapping for ResourceObjectType.NetworkACL and ResourceObjectType.NetworkACLItem
(cherry picked from commit 8a9092c3cd)
2014-06-11 15:24:56 -07:00
Min Chen ba848087f8 Disable IAM feature from 4.4 release. 2014-05-22 18:27:08 -07:00
Min Chen 0f79223f28 CLOUDSTACK-6613:IAM: authorizeSecurityGroupIngress fails when SG Name is
passed.
2014-05-08 23:19:28 -07:00
Min Chen d7c5382c58 CLOUDSTACK-6535: IAM:MS:API createVMSnapshot doesn't preserve access
rights.
2014-05-01 15:57:28 -07:00
Nitin Mehta dd55095fd5 CLOUDSTACK-6530: Populate the first class entities in the context to be available for publishing more information for the event bus, checking the displayable property etc.
(cherry picked from commit 3e7ea4e8d9)
2014-04-28 18:21:48 -07:00
Prachi Damle a0cd0c4d9d Changes while processing the @ACL annotation, to include only 1 object per parameter even if the parameter is tied to multiple interfaces in the @EntityReference 2014-04-17 17:54:19 -07:00
Min Chen da13165743 Change AccountManagerImpl.checkAccess to invoke SecurityChecker
interface that takes multiple controlled entities.
2014-04-17 17:53:01 -07:00
Daan Hoogland e97e65bff0 findbugs: toArray of the right type, not Object[] 2014-04-05 10:14:54 +02:00
Min Chen 94ebc90877 Remove usage of sameOwner checkAccess invocation, and convert to
OperateEntry IAM check.
2014-04-04 16:38:29 -07:00
Prachi Damle a509f94544 Adding SecurityChecker list for the ParamProcessWorker 2014-04-04 16:38:29 -07:00
Prachi Damle 897e0d3abe SecurityChecker can accept multiple ControlledEntity 2014-04-04 16:38:29 -07:00
Antonio Fornie c211f0bbbe Dispatcher corrections, refactoring and tests
Corrects problems from previous attempt. Fixes based on help comments from
the community and conflict resolution

Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-03-07 19:12:07 +01:00
Alena Prokharchyk 782c530685 Revert "CLOUDSTACK-6003 fixing plus refactoring dispatcher" as it breaks API dispatching for commands having Map<String,String> as a parameter type
This reverts commit 447430c3df.

Conflicts:
	api/src/org/apache/cloudstack/api/BaseCmd.java
	server/src/com/cloud/api/ApiDispatcher.java
	server/src/com/cloud/network/as/AutoScaleManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
2014-02-06 14:46:58 -08:00
Antonio Fornie 447430c3df CLOUDSTACK-6003 fixing plus refactoring dispatcher
Signed-off-by: Daan Hoogland <daan@onecht.net>
(cherry picked from commit a9bcc1ea3b7dfd3fcc5c795b0095c77851ebe618)
Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-02-04 13:37:08 +01:00