]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/sts: changing identity to boost::none, when role policy 49965/head
authorPritha Srivastava <prsrivas@redhat.com>
Thu, 2 Feb 2023 05:35:41 +0000 (11:05 +0530)
committerPritha Srivastava <prsrivas@redhat.com>
Thu, 2 Feb 2023 05:35:41 +0000 (11:05 +0530)
is verified for putobj permissions, in case of renaming a
large file.

While renaming a large file, putobj is invoked as an intermediate
step, and role policy is verified for the source object if temp creds
are used. Since the role policy is attached to the identity (role)
itself and the role policy does not contain a Principal, there is no
need to verify the identity and hence boost::none is passed in place
of the identity.

fixes: https://tracker.ceph.com/issues/58628

Signed-off-by: Pritha Srivastava <prsrivas@redhat.com>
src/rgw/rgw_op.cc

index 5bb0d398822546d97a5176f7e359cb59e9d57d27..4f1571f0031534b3c044d3f08f22dec52a0927ba 100644 (file)
@@ -3636,7 +3636,7 @@ int RGWPutObj::verify_permission(optional_yield y)
         auto usr_policy_res = Effect::Pass;
         rgw::ARN obj_arn(cs_object->get_obj());
         for (auto& user_policy : s->iam_user_policies) {
-          if (usr_policy_res = user_policy.eval(s->env, *s->auth.identity,
+          if (usr_policy_res = user_policy.eval(s->env, boost::none,
                              cs_object->get_instance().empty() ?
                              rgw::IAM::s3GetObject :
                              rgw::IAM::s3GetObjectVersion,