IAM(身份驗證以及訪問控制)

1.簡述

IAM(IDENTITY & ACCESS MANAGEMENT),身份驗證以及訪問控制,一種對資源提供可控安全的訪問解決方案,如今的公有云基本都支持IAM來對公有云資源提供受權訪問,各大雲廠商命名可能不一致,如阿里稱爲RAM (Resource Access Management),但所支持功能基本都是同樣.
概況來講IAM主要在發生資源訪問時,首先是身份驗證,而後是訪問權限驗證,以上兩步經過後才能訪問資源.不然訪問會被拒絕.html

2.關鍵術語

  • User(用戶)

這裏是指建立的IAM用戶,通常由管理用戶建立,新建立的用戶沒有任何權限.算法

  • Resource(資源)

這裏通常指須要進行訪問控制的產品,如公有云的數據庫,虛擬機等.數據庫

  • Group(用戶組)

這裏是指用戶組,能夠將用戶劃分爲不一樣用戶組,受權時針對用戶組受權,提升受權效率.json

  • Policy(受權策略)

用來描述受權策略的一種描述語言,用於描述誰在xx條件下對xx資源具備xx操做.安全

  • AK (Access Key)

訪問密鑰由AccessKeyID和AccessKeySecret組成,用於雲服務API請求的身份認證.google

  • MFA (Multi-Factor Authentication)

主要爲他們輸入用戶名和密碼(第一安全要素-用戶已知),還須要MFA設備的身份驗證代碼(第二安全要素 – 用戶已有)。這樣經過多重要素結合起來方式爲帳戶和資源提供更高的安全保護.阿里雲

  • Role(角色)

用戶能夠經過扮演角色從而擁有角色的權限,這裏能夠類比現實生活中,一我的會扮演不一樣角色,當扮演父親角色時須要教育兒女,當扮演丈夫角色時可能須要跪搓衣板.
對於角色的詳細解讀,
能夠見阿里雲文檔:https://help.aliyun.com/docum...code

3.臨時訪問憑證

臨時訪問憑證主要針對一些不安全的訪問環境,在這種訪問環境下直接存儲訪問祕鑰存在必定風險,發生訪問祕鑰泄露以後若是沒法及時解除權限的話將會很危險。
所以可使用服務端生成臨時訪問憑證的方式進行對資源的訪問,TS能夠指定複雜的策略來對特定的用戶進行限制,僅提供最小的權限,且訪問憑證具備時間限制,失效後須要從新獲取.htm

5.policy概述

policy通常採用json格式進行配置,樣例格式以下:對象

{
        "Version": "1",
        "Statement":
        [{
            "Effect": "Allow",
            "Action": ["oss:List*", "oss:Get*"],
            "Resource": ["acs:oss:*:*:samplebucket", "acs:oss:*:*:samplebucket/*"],
            "Condition":
            {
                "IpAddress":
                {
                    "acs:SourceIp": "42.160.1.0"
                }
            }
        }]
    }

5.1 Effect

受權效力包括兩種:容許(Allow)和拒絕(Deny),每條受權語句要麼Deny,要麼是 Allow,當同時存在多條受權語句既包含有Allow又包含有Deny時,遵循Deny優先原則。

5.2 Resource

資源是指被受權的具體對象。
格式爲:

acs:<service-name>:<region>:<account-id>:<relative-id>

acs:阿里雲縮寫
service-name: 服務名字.
region: 地區信息。若是不支持該項,可使用通配符「*」號來代替。
account-id: 帳號ID,
relative-id: 與service相關的資源描述部分,這部分的格式描述支持相似於一個文件路徑的樹狀結構。如對於對象存儲,能夠指定到特定目錄下的某個對象.

5.4 Action

操做方法是指對具體資源的操做,由服務名以及接口名組成.
格式爲:

<service-name>:<action-name>

樣例:

"Action": ["oss:ListBuckets", "ecs:Describe*", "rds:Describe*"]

5.5 Condition

限制條件是指受權生效的限制條件,這裏通常通用的限制條件有訪問者的IP地址,訪問時間段等.

6.總結

IAM在管理平臺使用比較普遍,目前各大雲廠商的實現均有極大的借鑑意義,針對身份驗證方面,傳統的用戶名密碼方式安全度並不高,所以目前一般引入
MFA進行屢次驗證,MFA主要是TOTP算法(Time-Based One-Time Password Algorithm)的應用.

權限控制方面則儘量授予最小權限,另外一方面也須要作好職權分離.

參考

1.阿里雲RAM https://help.aliyun.com/docum...
2.AWS IAM https://aws.amazon.com/cn/iam/
3.Googel IAM https://cloud.google.com/iam/
4.TOTP算法 https://tools.ietf.org/html/r...

相關文章
相關標籤/搜索