[ https://issues.apache.org/jira/browse/CLOUDSTACK-6644?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chandan Purushothama updated CLOUDSTACK-6644: --------------------------------------------- Priority: Blocker (was: Critical) > Unable to attach Volume to a VM as a System User > ------------------------------------------------ > > Key: CLOUDSTACK-6644 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6644 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Components: IAM > Affects Versions: 4.4.0 > Reporter: Chandan Purushothama > Priority: Blocker > Fix For: 4.4.0 > > > As System User, tried to attach a Volume belonging to an account to a VM > belonging to the same account. Failed with the following error. > "Acct[4f0e5b12-d6d8-11e3-952f-06098c000757-system] does not have permission > to perform this operation on these resources" > mysql> select account_id, uuid from vm_instance where uuid like '%56a4%'; > +------------+--------------------------------------+ > | account_id | uuid | > +------------+--------------------------------------+ > | 3 | 56a488ce-9baf-4d99-8e25-002d565f6731 | > +------------+--------------------------------------+ > 1 row in set (0.00 sec) > mysql> select account_id, uuid from volumes where uuid like '%00585b50%'; > +------------+--------------------------------------+ > | account_id | uuid | > +------------+--------------------------------------+ > | 3 | 00585b50-8c65-4e5b-95ee-853489e5499c | > +------------+--------------------------------------+ > 1 row in set (0.00 sec) > 2014-05-12 13:40:48,618 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] > (catalina-exec-2:ctx-c551e67e ctx-2b2b4ddd ctx-4beab6a0) submit async > job-190, details: AsyncJobVO {id:190, userId: 1, accountId: 1, instanceType: > Volume, instanceId: 11, cmd: > org.apache.cloudstack.api.command.admin.volume.AttachVolumeCmdByAdmin, > cmdInfo: > {"virtualmachineid":"56a488ce-9baf-4d99-8e25-002d565f6731","cmdEventType":"VOLUME.ATTACH","ctxUserId":"1","httpmethod":"GET","deviceid":"1","apikey":"dXvODaGH1UvF0WKs63T_wCXsVEs5nFTJaNhBJCGF3sCYwgbuvUaelZf6V8tWjTsyB53LSIT9Wf4UUUQKSz8UXQ","id":"00585b50-8c65-4e5b-95ee-853489e5499c","response":"json","ctxDetails":"{\"com.cloud.storage.Volume\":11,\"Volume\":\"00585b50-8c65-4e5b-95ee-853489e5499c\",\"com.cloud.vm.VirtualMachine\":8}","ctxAccountId":"1","uuid":"00585b50-8c65-4e5b-95ee-853489e5499c","ctxStartEventId":"448","signature":"euszCT397/kGpCM1fN+GQhTJCe8\u003d"}, > cmdVersion: 0, status: IN_PROGRESS, processStatus: 0, resultCode: 0, result: > null, initMsid: 6638073284439, completeMsid: null, lastUpdated: null, > lastPolled: null, created: null} > 2014-05-12 13:40:48,619 DEBUG [c.c.a.ApiServlet] > (catalina-exec-2:ctx-c551e67e ctx-2b2b4ddd ctx-4beab6a0) ===END=== 127.0.0.1 > -- GET > apikey=dXvODaGH1UvF0WKs63T_wCXsVEs5nFTJaNhBJCGF3sCYwgbuvUaelZf6V8tWjTsyB53LSIT9Wf4UUUQKSz8UXQ&command=attachVolume&deviceid=1&id=00585b50-8c65-4e5b-95ee-853489e5499c&response=json&virtualmachineid=56a488ce-9baf-4d99-8e25-002d565f6731&apikey=dXvODaGH1UvF0WKs63T_wCXsVEs5nFTJaNhBJCGF3sCYwgbuvUaelZf6V8tWjTsyB53LSIT9Wf4UUUQKSz8UXQ&signature=euszCT397%2FkGpCM1fN%2BGQhTJCe8%3D > 2014-05-12 13:40:48,621 DEBUG [c.c.a.ApiServlet] > (catalina-exec-3:ctx-9e956cd7) ===START=== 127.0.0.1 -- GET > apikey=dXvODaGH1UvF0WKs63T_wCXsVEs5nFTJaNhBJCGF3sCYwgbuvUaelZf6V8tWjTsyB53LSIT9Wf4UUUQKSz8UXQ&command=queryAsyncJobResult&jobId=2ef19e77-29af-416f-bc16-f27df1b58e7f&response=json&apikey=dXvODaGH1UvF0WKs63T_wCXsVEs5nFTJaNhBJCGF3sCYwgbuvUaelZf6V8tWjTsyB53LSIT9Wf4UUUQKSz8UXQ&signature=O1vnDPmstm6Xa2lEazduvETJkXk%3D > 2014-05-12 13:40:48,627 INFO [o.a.c.f.j.i.AsyncJobMonitor] > (API-Job-Executor-45:job-190) Add job-190 into job monitoring > 2014-05-12 13:40:48,627 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] > (API-Job-Executor-45:job-190) Executing AsyncJobVO {id:190, userId: 1, > accountId: 1, instanceType: Volume, instanceId: 11, cmd: > org.apache.cloudstack.api.command.admin.volume.AttachVolumeCmdByAdmin, > cmdInfo: > {"virtualmachineid":"56a488ce-9baf-4d99-8e25-002d565f6731","cmdEventType":"VOLUME.ATTACH","ctxUserId":"1","httpmethod":"GET","deviceid":"1","apikey":"dXvODaGH1UvF0WKs63T_wCXsVEs5nFTJaNhBJCGF3sCYwgbuvUaelZf6V8tWjTsyB53LSIT9Wf4UUUQKSz8UXQ","id":"00585b50-8c65-4e5b-95ee-853489e5499c","response":"json","ctxDetails":"{\"com.cloud.storage.Volume\":11,\"Volume\":\"00585b50-8c65-4e5b-95ee-853489e5499c\",\"com.cloud.vm.VirtualMachine\":8}","ctxAccountId":"1","uuid":"00585b50-8c65-4e5b-95ee-853489e5499c","ctxStartEventId":"448","signature":"euszCT397/kGpCM1fN+GQhTJCe8\u003d"}, > cmdVersion: 0, status: IN_PROGRESS, processStatus: 0, resultCode: 0, result: > null, initMsid: 6638073284439, completeMsid: null, lastUpdated: null, > lastPolled: null, created: null} > 2014-05-12 13:40:48,642 DEBUG [o.a.c.i.RoleBasedEntityAccessChecker] > (catalina-exec-3:ctx-9e956cd7 ctx-6c73263d ctx-4e50fbeb) IAM access check for > 1-null-null-DomainCapability from cache > 2014-05-12 13:40:48,645 DEBUG [o.a.c.i.RoleBasedEntityAccessChecker] > (API-Job-Executor-45:job-190 ctx-b61119c8) IAM access check for > 1-null-null-SystemCapability from cache > 2014-05-12 13:40:48,650 DEBUG [c.c.u.AccountManagerImpl] > (API-Job-Executor-45:job-190 ctx-b61119c8) Root Access granted to > Acct[4f0e5b12-d6d8-11e3-952f-06098c000757-system] by > AffinityGroupAccessChecker > 2014-05-12 13:40:48,653 DEBUG [c.c.a.ApiServlet] > (catalina-exec-3:ctx-9e956cd7 ctx-6c73263d ctx-4e50fbeb) ===END=== 127.0.0.1 > -- GET > apikey=dXvODaGH1UvF0WKs63T_wCXsVEs5nFTJaNhBJCGF3sCYwgbuvUaelZf6V8tWjTsyB53LSIT9Wf4UUUQKSz8UXQ&command=queryAsyncJobResult&jobId=2ef19e77-29af-416f-bc16-f27df1b58e7f&response=json&apikey=dXvODaGH1UvF0WKs63T_wCXsVEs5nFTJaNhBJCGF3sCYwgbuvUaelZf6V8tWjTsyB53LSIT9Wf4UUUQKSz8UXQ&signature=O1vnDPmstm6Xa2lEazduvETJkXk%3D > 2014-05-12 13:40:48,653 DEBUG [o.a.c.i.RoleBasedEntityAccessChecker] > (API-Job-Executor-45:job-190 ctx-b61119c8) IAM access check for > 1-null-null-DomainCapability from cache > 2014-05-12 13:40:48,659 DEBUG [o.a.c.i.RoleBasedEntityAccessChecker] > (API-Job-Executor-45:job-190 ctx-b61119c8) IAM access check for > 1-null-null-DomainResourceCapability from cache > 2014-05-12 13:40:48,660 DEBUG [o.a.c.i.RoleBasedEntityAccessChecker] > (API-Job-Executor-45:job-190 ctx-b61119c8) IAM access check for > 1-VirtualMachine-OperateEntry-attachVolume from cache > 2014-05-12 13:40:48,660 DEBUG [o.a.c.i.RoleBasedEntityAccessChecker] > (API-Job-Executor-45:job-190 ctx-b61119c8) IAM access check for > 1-Volume-OperateEntry-attachVolume from cache > 2014-05-12 13:40:48,660 DEBUG [o.a.c.i.RoleBasedEntityAccessChecker] > (API-Job-Executor-45:job-190 ctx-b61119c8) IAM access check for > 1-Volume-OperateEntry-attachVolume from cache > 2014-05-12 13:40:48,660 DEBUG [o.a.c.i.RoleBasedEntityAccessChecker] > (API-Job-Executor-45:job-190 ctx-b61119c8) IAM access check for > 1-VirtualMachine-OperateEntry-attachVolume from cache > 2014-05-12 13:40:48,660 ERROR [c.c.a.ApiAsyncJobDispatcher] > (API-Job-Executor-45:job-190) Unexpected exception while executing > org.apache.cloudstack.api.command.admin.volume.AttachVolumeCmdByAdmin > com.cloud.exception.PermissionDeniedException: > Acct[4f0e5b12-d6d8-11e3-952f-06098c000757-system] does not have permission to > perform this operation on these resources > at > org.apache.cloudstack.iam.RoleBasedEntityAccessChecker.checkAccess(RoleBasedEntityAccessChecker.java:221) > at > com.cloud.user.AccountManagerImpl.checkAccess(AccountManagerImpl.java:539) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > at > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) > at com.sun.proxy.$Proxy100.checkAccess(Unknown Source) > at > com.cloud.api.dispatch.ParamProcessWorker.doAccessChecks(ParamProcessWorker.java:269) > at > com.cloud.api.dispatch.ParamProcessWorker.processParameters(ParamProcessWorker.java:220) > at > com.cloud.api.dispatch.ParamProcessWorker.handle(ParamProcessWorker.java:93) > at > com.cloud.api.dispatch.DispatchChain.dispatch(DispatchChain.java:37) > at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:79) > at > com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java:108) > at > org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:496) > at > org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53) > at > org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46) > at > org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(AsyncJobManagerImpl.java:453) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:744) > 2014-05-12 13:40:48,668 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] > (API-Job-Executor-45:job-190) Complete async job-190, jobStatus: FAILED, > resultCode: 530, result: > org.apache.cloudstack.api.response.ExceptionResponse/null/{"uuidList":[],"errorcode":530,"errortext":"Acct[4f0e5b12-d6d8-11e3-952f-06098c000757-system] > does not have permission to perform this operation on these resources"} > 2014-05-12 13:40:48,701 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] > (API-Job-Executor-45:job-190) Done executing > org.apache.cloudstack.api.command.admin.volume.AttachVolumeCmdByAdmin for > job-190 -- This message was sent by Atlassian JIRA (v6.2#6252)