如何拒绝Google Cloud中未启用MFA的授权用户(含Gmail第三方)API请求?
强制GCP项目用户启用MFA访问的实现方法
GCP支持通过IAM条件策略实现类似AWS的MFA强制验证,无需控制第三方Gmail用户的Cloud Identity设置,具体方案如下:
1. 利用IAM条件限制未启用MFA的用户
你可以在IAM角色绑定中添加条件表达式,拒绝未满足MFA要求的用户执行API请求。GCP提供两个核心条件:
iam:hasStrongAuth:验证用户是否使用了强身份验证(包含TOTP、硬件密钥等MFA方式)iam:hasValidTimeBasedOneTimePassword:专门针对TOTP类型的MFA验证
配置示例
给用户授予roles/viewer角色时,添加以下条件即可强制MFA:
iam:hasStrongAuth == true
当用户未启用MFA时,即便拥有角色权限,也会被拒绝所有需要该角色的API操作。
2. 关键注意事项
- 该条件对所有用户生效,包括非组织内的Gmail账号,因为它检查的是用户自身的MFA状态,无需你访问其Cloud Identity配置。
- 需确保所有敏感角色(如Editor、Owner、Viewer等)的绑定都添加此条件,避免权限遗漏。
- 验证方法:用未启用MFA的Gmail账号尝试访问GCP资源(如查看Cloud Storage桶),会收到权限拒绝错误;启用MFA后即可正常操作。
3. 不适用的方案说明
若你拥有自身的Cloud Identity/Workspace组织,可通过组织政策强制MFA,但此方法无法作用于第三方Gmail用户,因此不适用你的场景。
内容的提问来源于stack exchange,提问作者JackyCCC
相关产品推荐
相关产品推荐

