]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw:When KMS encryption is used and the key does not exist, we should not throw ERR_... 45462/head
authorwangyingbin <wangyingbin@inspur.com>
Wed, 16 Sep 2020 07:15:45 +0000 (15:15 +0800)
committerCory Snyder <csnyder@iland.com>
Wed, 16 Mar 2022 18:49:01 +0000 (14:49 -0400)
When kms encryption is used, the key_id is null or the actual_key size is wrong, we should not throw "ERR_INVALID_ACCESS_KEY " error code, instead of "EINVAL"error code, is used to indicate parameter error.

Signed-off-by: wangyingbin <wangyingbin@inspur.com>
(cherry picked from commit 40dbc29984d67a3f4946a0b30d53f3db19952bf0)

src/rgw/rgw_crypt.cc

index a5161e7d8fd66e063c6ab7200931c0981e01f34f..a32a963f8aee6e5bc5fc18e21b5c9bb5a4f7aca1 100644 (file)
@@ -783,7 +783,7 @@ int rgw_s3_prepare_encrypt(struct req_state* s,
          ldout(s->cct, 5) << "ERROR: not provide a valid key id" << dendl;
          s->err.message = "Server Side Encryption with KMS managed key requires "
            "HTTP header x-amz-server-side-encryption-aws-kms-key-id";
-         return -ERR_INVALID_ACCESS_KEY;
+         return -EINVAL;
        }
        /* try to retrieve actual key */
        std::string key_selector = create_random_key_selector(s->cct);
@@ -798,7 +798,7 @@ int rgw_s3_prepare_encrypt(struct req_state* s,
          ldout(s->cct, 5) << "ERROR: key obtained from key_id:" <<
             key_id << " is not 256 bit size" << dendl;
          s->err.message = "KMS provided an invalid key for the given kms-keyid.";
-         return -ERR_INVALID_ACCESS_KEY;
+         return -EINVAL;
        }
        set_attr(attrs, RGW_ATTR_CRYPT_MODE, "SSE-KMS");
        set_attr(attrs, RGW_ATTR_CRYPT_KEYID, key_id);