[New Feature]OSS支持设置Bucket 服务端默认加密方式

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 第一章:阿里云OSS Bucket默认加密方式介绍   阿里云OSS支持通过API、SDK、工具以及控制台等方式设置Bucket的默认加密方式。当Bucket设置服务端加密后,具有相应权限的用户上传文件到该Bucket时,自动对这些对象进行加密。

第一章:阿里云OSS Bucket默认加密方式介绍

  阿里云OSS支持通过API、SDK、工具以及控制台等方式设置Bucket的默认加密方式。当Bucket设置服务端加密后,具有相应权限的用户上传文件到该Bucket时,自动对这些对象进行加密。
Bucket默认加密方式适合于当前和新创建的Bucket。当使用服务端加密时,OSS在将数据保存到阿里云数据中心磁盘之前对其进行加密,并且在下载对象时自动进行解密。
  使用OSS托管密钥加密,不会产生额外的费用。但是,使用KMS密钥进行加密时,会产生KMS使用以及相关API调用的费用。OSS服务端加密方式支持设置OSS托管密钥(SSE-OSS)、KMS托管密钥(SSE-KMS)以及KMS的BYOK密钥。

目前该功能已经在美东Region进行公测。如需进行测试,请联系阿里云技术支持或者工单咨询。

第二章:如何为Bucket设置服务端加密方式

2.1使用OSS控制台设置Bucket默认加密方式

  当用户创建Bucket时,可以设置Bucket默认加密方式。针对已经存在的Bucket,用户可以在“基础设置”中修改Bucket的默认加密方式。
  具体设置步骤如下
1.登录OSS控制台,选择需要设置的Bucket。切换至“基础设置”页面;
2.选择“服务端加密”,如下所示:
image

3.目前服务端加密方式有如下3种:

  • :不设置Bucket默认加密方式。若用户没有在PUT object请求标头中设置对象的加密方式,默认该对象以明文的方式存在OSS集群;
  • AES256:使用阿里云OSS默认托管的密钥进行加密;
  • KMS:KMS有2种加密方式:

    • 1.alias/acs/oss:这是由OSS托管在KMS服务的密钥,默认所有的用户都可以使用OSS托管的KMS密钥进行加密;
    • 2.CMK ID:支持用户使用指定的KMS密钥进行加密;

2.1.1相关操作授权

说明:针对OSS的每个操作均需要取得授权。如下是主要步骤的RAM 授权;
1.STEP1:设置Bucket默认加密方式
需要具有"Put Bucket Encryption"以及"Get Bucket Encryption"权限;

  • 默认根账号以及具有“AliyunOSSFullAccess”、“AdministratorAccess”权限的账号默认具有如上2个权限;
  • 若使用子账号登录控制台,则需要RAM Policy给当前用户授予如上2个权限;

2.STEP2:选择服务端加密合适的密钥

  • 由于AES256、以及OSS托管的KMS密钥的所有权限是属于阿里云OSS服务。因此,用户无需授权就可以使用AES256以及OSS托管的KMS密钥进行加解密操作;
  • 若用户使用指定的CMK ID进行加密。那么,当前进行操作的子账号必须具备“ListKeys”、“Listalias”、“ListAliasesByKeyId”以及“DescribeKeys”。具体RAM policy策略如下:
{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:List*",
        "kms:DescribeKey"    
      ],
      "Resource": [
        "acs:kms:*:1416614965936597:*"
      ]
    }
  ]
}

image

说明:如上策略允许用户查看当前reigon下所有合适的CMK ID ,但是仅支持选择1个KMS 密钥;

3.STEP3:子账号上传文件至指定的Bucket
  当配置Bucket 服务端默认加密方式后。用户上传文件到该Bucket的对象,将采用Bucket的默认服务端加密方式进行加密,除非用户在上传文件时特别设置了该对象的加密方式。
  Bucket的服务端加密方式设置为AES256或者默认OSS托管的KMS密钥(alias/acs/oss),任何具有上传权限的对象都可以将对象上传至该Bucket,并且采用该Bucket的默认加密方式。若服务端的加密方式为KMS,并且使用了指定的CMK ID。那么用户上传对象至该Bucket时,需要具有对应CMK ID的加密权限。否则该对象因为没有权限调用KMS加密权限,而导致上传失败。如下是给子账号设置具有对应CMKID加密权限的RAM policy示例:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:List*",
        "kms:DescribeKey",
        "kms:GenerateDataKey"
      ],
      "Resource": [
        "acs:kms:*:1416614965936597:*"   //当前示例表示允许调用该账号下所有的KMS密钥,如果仅限制使用某个KMS,此处可输入对应的CMK ID
      ]
    }
  ]
}

4.STEP4:子账号从Bucket中下载加密的对象
  当设置了Bucket默认服务端加密方式后,上传到该Bucket的对象默认都会进行服务端加密。可以授权子账号从该Bucket下载对象。若Bucket的服务端加密方式是AES256以及OSS默认托管的KMS密钥(该密钥别名是alias/acs/oss),此时具有下载权限的用户都可以从该Bucket下载对象。OSS会自动对加密的对象进行解密,并且将明文对象返回给用户。

  若该Bucket设置了使用指定KMS的密钥进行加密,那么下载该Bucket内对象的用户除了需要具备get object权限外,还需要具有指定KMS密钥对应的解密权限。若该子账号仅具有get object权限,而没有对应KMS的解密权限(decrypt权限),那么用户下载文件时也会提示下载失败。阿里云OSS不会将加密后的密文对象直接返回给用户。如下是给子账号设置具有KMS解密权限的RAM policy:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
    "kms:Decrypt"
      ],
      "Resource": [
        "acs:kms:*:1416614965936597:*"//该示例表示子账号具有当前所有KMS的解密权限。若要针对某个KMS密钥进行解密,此处可输入对应的CMK ID
      ]
    }
  ]
}

说明:下载使用了指定KMS密钥加密的对象是需要额外配置相关KMS权限。所以,当您的AK被泄露后,您可以通过禁用KMS或者修改kms相关policy,已拒绝所有用户对该Bucket的请求。

2.2使用REST API方式设置Bucket默认加密方式

如下,您也可以使用API方式设置Bucket 服务端默认加密方式:

  • 使用 PUT Bucket Encryption 接口设置Bucket的默认服务端加密方式(AES256或者KMS);
  • 使用 DELETE Bucket Encryption接口禁止对象的默认加密。禁用默认加密后,OSS仅在PUT请求包含加密信息时加密对象
  • 使用GET Bucket Encryption接口查看该Bucket的默认加密方式;

2.3使用工具设置Bucket默认加密方式

  当前还不支持SDK以及工具方式设置Bucket 默认加密方式,预计2019年上半年支持该特性。

相关文章
|
存储 安全 API
oss客户端加密密钥管理
阿里云OSS数据加密涉及SSE-C和SSE-KMS两种方案。SSE-C中,客户端自动生成并管理DEK,负责加密和解密数据,需确保密钥的安全存储和访问控制。SSE-KMS则利用KMS生成和管理密钥,客户端通过API请求加密/解密密钥,实现更安全的密钥管理。无论哪种方式,都需要遵循密钥生命周期管理、访问控制、安全存储和定期轮换等最佳实践。选择SSE-C需要客户端有安全的密钥存储,而SSE-KMS则需关注与KMS的API交互和访问策略。
583 3
|
存储 安全 开发工具
oss加密存储
阿里云OSS为数据安全提供多种加密机制,包括服务器端的SSE-S3(AES-256透明加密)、SSE-C(用户管理密钥)和CSE-KMS(结合KMS进行密钥管理)。此外,OSS支持客户端加密SDK和HTTPS传输加密,确保数据在传输和存储时的安全。通过ACL、Bucket策略和访问密钥身份验证,实现权限控制与身份验证,全方位保障用户数据的安全性和隐私。用户可按需选择适合的加密方式。
1168 2
|
存储 编解码 监控
云端加密代码库问题之企业设置网络隔离如何解决
云端加密代码库问题之企业设置网络隔离如何解决
|
存储 安全 开发工具
oss客户端加密
阿里云OSS支持客户端加密,允许用户在本地加密数据后上传,确保数据在传输和存储时的隐私安全。用户管理主密钥,控制数据密钥加密与解密,增强数据控制和合规性。此机制适用于高安全需求场景,如金融、医疗等,但用户需负责密钥管理和加密操作。
644 8
|
存储 安全 API
oss服务器端加密(SSE)
阿里云OSS提供服务器端加密(SSE),自动加密上传的数据并透明解密下载,保护云端对象的隐私和机密性。SSE支持两种方式:SSE-KMS(使用KMS托管CMK)和SSE-OSS(OSS管理加密密钥)。加密过程在服务器端完成,对用户应用透明且兼容标准HTTP接口。云盒和ossutil工具也支持此功能,让用户轻松管理加密对象,确保数据存储和传输安全。用户可按需选择密钥管理方式。
808 4
|
存储 安全 数据安全/隐私保护
oss数据加密与存储
阿里云OSS提供多种数据加密(SSE-S3, SSE-KMS, SSE-C, CSE-KMS)与存储安全措施,包括服务器和客户端加密、数据在磁盘上加密存储、多重冗余备份、访问控制列表和HTTPS安全传输。KMS支持密钥管理,确保数据静态和传输时的安全。严格的访问策略和身份验证保护资源免受未授权访问,满足高安全性和合规性需求。
768 3
|
存储 安全 开发工具
oss客户端密钥管理数据密钥加密与上传
阿里云OSS实现数据安全加密和访问控制,通过KMS托管CMK或客户端加密管理DEK。数据加密流程中,可使用KMS加密DEK后存储在OSS元数据,或利用SDK在本地加密文件再上传。上传时,HTTP请求头含加密参数,通过RAM临时凭证初始化SDK客户端,调用API上传加密文件,确保数据传输和存储的安全。
721 2
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
云安全 安全 数据建模
《数字证书:互联网世界的"身份证"与"防盗门"》 ——揭秘网络安全背后的加密江湖
在2023年某深夜,上海陆家嘴金融公司机房遭遇黑客攻击,神秘青铜大门与九大掌门封印的玉牌突现,阻止了入侵。此门象征数字证书,保障网络安全。数字证书如验钞机识别假币,保护用户数据。它通过SSL/TLS加密、CA认证和非对称加密,构建安全通信。证书分为DV、OV、EV三类,分别适合不同场景。忽视证书安全可能导致巨额损失。阿里云提供一站式证书服务,助力企业部署SSL证书,迎接未来量子计算和物联网挑战。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
334 10

相关产品

  • 对象存储