天天看點

如何限制隻有啟用了MFA認證的使用者才能操作OSS資源?第一章:使用者使用場景介紹第二章:為主賬号/子賬号啟用MFA第三章:為子賬号配置RAM policy 已拒絕非MFA認證的操作請求第四章:FAQ

第一章:使用者使用場景介紹

  阿裡雲控制台提供了各個産品相關圖形化配置,并且功能比較齊全。對于使用者來說,學習成本低、易操作、易上手。是以,絕大多數使用者使用主賬号登入控制台進行日常的運維管理操作。由于主賬号對其名下的所有阿裡雲資源都擁有完全控制的權限,一旦主賬号的登入密碼洩露,該賬号下的資産将面臨極大的損失,甚至有可能被他人惡意使用而造成相關法律風險。

  是以,我們建議您禁用主賬号進行相關操作,而是通過授權子賬号的方式進行運維和開發管理。而對于不得不使用控制台進行操作的場景,我們建議您對賬号啟用MFA,以提高賬号的安全性。

第二章:為主賬号/子賬号啟用MFA

  為主賬号/子賬号啟用MFA的相關操作方法請參見:

賬号設定MFA操作方法

第三章:為子賬号配置RAM policy 已拒絕非MFA認證的操作請求

  當為主賬号以及子賬号啟用MFA後,使用者每次登入控制台的操作都需要輸入MFA安全碼。是以,可以保證控制台相關操作的安全。但是SDK、API以及工具的相關操作預設不傳遞MFA參數。是以,對于啟用了MFA認證的賬号,仍然使用AK資訊,不通過MFA二次認證而繼續使用SDK、API以及工具操作OSS相關資源。為了實作拒絕子賬号所有非MFA二次認證的操作請求,需要對子賬号額外賦予RAM Policy。具體RAM Policy政策模闆如下:

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "oss:*"
            ],
            "Resource": [
                "acs:oss:*:*:*"
            ],
            "Condition": {
                "Bool": {
                    "acs:MFAPresent": [
                        "true"
                    ]
                }
            }
        }
    ]
}           

  設定如上RAM policy政策後,該賬号的所有請求操作都需要進過MFA進行二次認證。是以賬号登入控制台,輸入MFA安全碼後,就可以進行正常操作。但是該使用者如果使用API、SDK或者工具進行操作,就會提示授權失敗如下所示:

D:\5-AK賬号\ossutil64>ossutil64.exe ls  oss://test-hangzhou-2025/ -e http://oss-
cn-hangzhou.aliyuncs.com
Error: oss: service returned error: StatusCode=403, ErrorCode=AccessDenied, Erro
rMessage=The bucket you visit is not belong to you., RequestId=5C52AB7E880904877
DF82E2E, Bucket=test-hangzhou-2025!           

第四章:FAQ

  1. Bucket Policy的條件參數是否支援設定"MFAPresent"參數?
    • 目前不支援。後續規劃支援該特性;
  2. 對于有API、SDK或者工具操作是否支援指定MFA參數?
    • 目前不支援;