AccessKey泄露处理方案
本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
访问密钥(AccessKey)是您调用阿里云API时用于完成身份验证的凭证,AccessKey泄露会对该账号下所有资源的安全带来威胁,产生非预期的费用以及恶意勒索等,严重情况下甚至可能给阿里云或其他用户带来危害。本文为您介绍疑似泄露的AccessKey的处理方案,避免AccessKey泄露造成更大范围的身份凭证冒用风险。
阿里云安全措施
阿里云一直致力于提升云服务的安全性,并尽最大努力支持您更好地保护您的账户及资产安全。当阿里云根据外部线索,掌握到您的AccessKey已经被公开,阿里云将通过您预留的联系方式及时通知您,同时为保障您的业务及数据安全,阿里云将禁止该AccessKey调用访问控制(RAM)产品API的部分功能,包括IMS服务和RAM服务,不包括STS服务,限制通过该AccessKey查询、创建、修改用户和角色的身份、AccessKey以及权限等。
请您务必及时关注短信、邮箱、站内消息等渠道的通知,并结合业务实际需求进行及时处置,同时关注您账号下的云资源异动,以免影响业务的正常运行。
阿里云无法也不可能掌握您全部AccessKey的使用安全情况。根据安全责任共担模型,云上的安全由您和阿里云共同分担。其中AccessKey属于云客户的账号和身份访问凭证,相关安全责任仍需要由您负责承担,请您务必关注。
阿里云账号(主账号)AccessKey疑似泄露手动处理措施
若确认AccessKey不在使用中,请访问AccessKey管理页面,直接禁用和删除AccessKey。
若确认AccessKey在使用中,请访问AccessKey管理页面,轮转AccessKey。
您可以先创建一个新的AccessKey,妥善保管AccessKey Secret。将原AccessKey替换为新的AccessKey,验证正常运行后,禁用和删除AccessKey。
RAM用户AccessKey疑似泄露手动处理措施
若确认AccessKey不在使用中,访问RAM控制台,直接禁用和删除RAM用户的AccessKey。具体操作,请参见禁用RAM用户的AccessKey、删除RAM用户的AccessKey。
若确认AccessKey在使用中且可以直接轮转,请尽快轮转。
您可以创建新的AccessKey,妥善保管AccessKey Secret。将原AccessKey替换为新的AccessKey,验证正常运行后,禁用和删除旧的AccessKey。具体操作,请参见轮转RAM用户的AccessKey。
若确认AccessKey在使用中且短期内无法顺利轮转,为降低被盗用的影响,您可以按照下图所示步骤进行处置。完成后务必尽快轮转。
步骤一:缩小AccessKey权限
请先明确业务场景,在不影响当前业务运行的前提下,尽快缩小疑似泄露的AccessKey权限,限制高风险权限,降低业务和资费受损的风险。在AccessKey禁用和删除之前请不要解除该策略(限制高风险权限)的授权。
建议限制的高风险权限,例如:禁止该RAM用户在访问控制(RAM)中创建新的RAM用户及授权,禁止ECS、RDS、OSS、SLS资源的释放,禁止发送短信等。
以下提供一个禁用高风险权限的自定义权限策略示例,请您充分评估影响,根据业务情况设置。
{ "Version": "1", "Statement": [ { "Effect": "Deny", "Action": [ "ram:AddUserToGroup", "ram:AttachPolicyToGroup", "ram:AttachPolicyToRole", "ram:AttachPolicyToUser", "ram:ChangePassword", "ram:CreateAccessKey", "ram:CreateLoginProfile", "ram:CreatePolicyVersion", "ram:CreateRole", "ram:CreateUser", "ram:DetachPolicyFromUser", "ram:PassRole", "ram:SetDefaultPolicyVersion", "ram:UpdateAccessKey", "ram:SetPasswordPolicy", "ram:UpdateRole", "ram:UpdateLoginProfile", "ram:UpdateUser" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ecs:DeleteInstance", "ecs:DeleteInstances", "ecs:DeregisterManagedInstance", "ecs:ReleaseDedicatedHost" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "rds:DeleteAccount", "rds:DeleteDatabase", "rds:DeleteDBInstance", "rds:DestroyDBInstance" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "oss:DeleteBucket", "oss:DeleteObject", "oss:PutBucketAcl", "oss:PutBucketPolicy" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "log:DeleteLogStore", "log:DeleteProject", "log:PutProjectPolicy", "log:DeleteProjectPolicy" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "dysms:CreateProductNew", "dysms:CreateSmsTemplateNew", "dysms:AddSmsTemplate", "dysms:SendSms", "dysms:SendBatchSms" ], "Resource": "*" } ] }
建议您明确AccessKey所需要的业务权限,将不需要的权限全部移除。
步骤二:开启RAM用户的MFA
按照最佳实践,建议您阿里云账号(主账号)下所有用于控制台访问的RAM用户开启多因素认证(MFA)。
设置主账号下的RAM用户登录控制台必须开启MFA。
具体操作,请参见管理RAM用户登录设置。
为用户绑定MFA设备。
具体操作,请参见为RAM用户绑定MFA设备。
步骤三:检查是否存在AccessKey异常操作
检查AccessKey是否存在异常操作行为,以及排查是否有其他疑似泄露的身份。重点关注异常的访问IP、非业务需要的资源创建或删除操作等。
检查方式:在RAM控制台查找RAM用户的AccessKey列表,在列表中查看操作记录,或在操作审计控制台的AccessKey 审计页面直接输入AccessKey ID查询操作记录。
说明未接入操作审计的数据类操作日志,如OSS、SLS等,需要使用各云产品的日志功能查询。
进一步排查除了已知存在泄露风险的AccessKey之外,是否还有其他RAM用户和AccessKey存在异常操作行为。若发现存在异常行为,与相关人员确认操作是否由本人执行,若存在疑似泄露风险,建议按以下方式处理:
RAM用户如果需要继续使用,建议您立即修改RAM用户密码并开启多因素认证(MFA)。
RAM用户并非正常创建的,或确认为闲置用户不需要继续使用的,可进行删除。RAM用户删除后会进入回收站,观察业务是否受到影响,如有影响该RAM用户可快速恢复。
AccessKey异常操作,参照上文所述方法进行权限限制,然后进行轮转。
步骤四:检查是否存在异常费用