閱讀805 返回首頁    go iPhone_iPad_Mac_手機_平板_蘋果apple


自定義權限__授權管理_阿裏雲物聯網套件-阿裏雲

自定義權限

Action 定義

Action 是 API 的名稱,可以根據 Action 設置開放或限製用戶可以訪問的 API。在創建IOT的授權策略時,每個 Action 都需要添加“iot:”前綴,多個 Action 以逗號分隔,並且支持星號通配符(包括前綴匹配和後綴匹配)。

典型的 Action 定義

下麵是一些典型的 Action 定義。

  • 單個 API。
  1. "Action": "iot:CreateProduct"
  • 多個 API。

    1. "Action": [
    2. "iot:UpdateProduct",
    3. "iot:QueryProduct"
    4. ]
  • 所有隻讀 API。

  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Action": [
  6. "rds:DescribeDBInstances",
  7. "rds:DescribeDatabases",
  8. "rds:DescribeAccounts",
  9. "rds:DescribeDBInstanceNetInfo"
  10. ],
  11. "Resource": "*",
  12. "Effect": "Allow"
  13. },
  14. {
  15. "Action": "ram:ListRoles",
  16. "Effect": "Allow",
  17. "Resource": "*"
  18. },
  19. {
  20. "Action": "mns:ListTopic",
  21. "Resource": "*",
  22. "Effect": "Allow"
  23. },
  24. {
  25. "Action": [
  26. "dhs:ListProject",
  27. "dhs:ListTopic",
  28. "dhs:GetTopic"
  29. ],
  30. "Resource": "*",
  31. "Effect": "Allow"
  32. },
  33. {
  34. "Action": [
  35. "ots:ListInstance",
  36. "ots:ListTable",
  37. "ots:DescribeTable"
  38. ],
  39. "Resource": "*",
  40. "Effect": "Allow"
  41. },
  42. {
  43. "Action": [
  44. "log:ListShards",
  45. "log:ListLogStores",
  46. "log:ListProject"
  47. ],
  48. "Resource": "*",
  49. "Effect": "Allow"
  50. },
  51. {
  52. "Effect": "Allow",
  53. "Action": [
  54. "iot:Query*",
  55. "iot:List*",
  56. "iot:Get*",
  57. "iot:BatchGet*"
  58. ],
  59. "Resource": "*"
  60. }
  61. ]
  62. }
  • 所有讀寫 API。
    1. {
    2. "Version": "1",
    3. "Statement": [
    4. {
    5. "Action": [
    6. "rds:DescribeDBInstances",
    7. "rds:DescribeDatabases",
    8. "rds:DescribeAccounts",
    9. "rds:DescribeDBInstanceNetInfo"
    10. ],
    11. "Resource": "*",
    12. "Effect": "Allow"
    13. },
    14. {
    15. "Action": "ram:ListRoles",
    16. "Effect": "Allow",
    17. "Resource": "*"
    18. },
    19. {
    20. "Action": "mns:ListTopic",
    21. "Resource": "*",
    22. "Effect": "Allow"
    23. },
    24. {
    25. "Action": [
    26. "dhs:ListProject",
    27. "dhs:ListTopic",
    28. "dhs:GetTopic"
    29. ],
    30. "Resource": "*",
    31. "Effect": "Allow"
    32. },
    33. {
    34. "Action": [
    35. "ots:ListInstance",
    36. "ots:ListTable",
    37. "ots:DescribeTable"
    38. ],
    39. "Resource": "*",
    40. "Effect": "Allow"
    41. },
    42. {
    43. "Action": [
    44. "log:ListShards",
    45. "log:ListLogStores",
    46. "log:ListProject"
    47. ],
    48. "Resource": "*",
    49. "Effect": "Allow"
    50. },
    51. {
    52. "Effect": "Allow",
    53. "Action": "iot:*",
    54. "Resource": "*"
    55. }
    56. ]
    57. }

Condition 定義

目前 Policy 支持訪問 IP 限製、是否通過 https 訪問、是否通過 MFA(多因素認證)訪問和訪問時間限製等多種鑒權條件,物聯網套件的所有 API 都已經支持這些條件。

訪問 IP 限製

訪問控製 RAM 可以限製訪問表格存儲的源 IP 地址,並且支持根據網段進行過濾。下麵是一些典型的使用場景。

  • 限製多個 IP 地址。例如,隻允許 IP 地址為 10.101.168.111 和 10.101.169.111 的請求訪問。
  1. {
  2. "Statement": [
  3. {
  4. "Effect": "Allow",
  5. "Action": "iot:*",
  6. "Resource": "*",
  7. "Condition": {
  8. "IpAddress": {
  9. "acs:SourceIp": [
  10. "10.101.168.111",
  11. "10.101.169.111"
  12. ]
  13. }
  14. }
  15. }
  16. ],
  17. "Version": "1"
  18. }
  • 限製單個 IP 地址和 IP 網段。例如,隻允許 IP 地址為 10.101.168.111 或 10.101.169.111/24 網段的請求訪問。

    1. {
    2. "Statement": [
    3. {
    4. "Effect": "Allow",
    5. "Action": "iot:*",
    6. "Resource": "*",
    7. "Condition": {
    8. "IpAddress": {
    9. "acs:SourceIp": [
    10. "10.101.168.111",
    11. "10.101.169.111/24"
    12. ]
    13. }
    14. }
    15. }
    16. ],
    17. "Version": "1"
    18. }

https 訪問限製

訪問控製可以限製是否通過 https 訪問,下麵是典型的使用場景。

限製請求必須通過 https 訪問。

  1. {
  2. "Statement": [
  3. {
  4. "Effect": "Allow",
  5. "Action": "iot:*",
  6. "Resource": "*",
  7. "Condition": {
  8. "Bool": {
  9. "acs:SecureTransport": "true"
  10. }
  11. }
  12. }
  13. ],
  14. "Version": "1"
  15. }

MFA 訪問限製

訪問控製可以限製是否通過 MFA(多因素認證)訪問,下麵是典型的使用場景。

限製請求必須通過 MFA 訪問。

  1. {
  2. "Statement": [
  3. {
  4. "Effect": "Allow",
  5. "Action": "iot:*",
  6. "Resource": "*",
  7. "Condition": {
  8. "Bool": {
  9. "acs:MFAPresent ": "true"
  10. }
  11. }
  12. }
  13. ],
  14. "Version": "1"
  15. }

訪問時間限製

訪問控製可以限製請求的訪問時間,即隻允許或拒絕在某個時間點範圍之前的請求。下麵是典型的使用場景。

例如,北京時間 2016 年 1 月 1 號淩晨之前用戶可以訪問,之後就不能再訪問。

  1. {
  2. "Statement": [
  3. {
  4. "Effect": "Allow",
  5. "Action": "iot:*",
  6. "Resource": "*",
  7. "Condition": {
  8. "DateLessThan": {
  9. "acs:CurrentTime": "2016-01-01T00:00:00+08:00"
  10. }
  11. }
  12. }
  13. ],
  14. "Version": "1"
  15. }

典型使用場景

結合上麵對 Action、Resource 和 Condition 的定義,下麵列出一些典型使用場景的 Policy 定義和授權方法。

多種授權條件

對於訪問 IP 地址為 10.101.168.111/24 網段的用戶,可以訪問自定義的權限,且要求隻能在 2016-01-01 00:00:00 之前訪問和通過 https 訪問。

操作步驟

  1. 使用主賬號登錄訪問控製 RAM 的管理控製台。(默認已開通訪問控製服務)

  2. 單擊頁麵左側的策略管理,進入策略管理頁麵。

  3. 單擊頁麵右側的新建授權策略按鈕,進入創建授權策略的頁麵。

  4. 選中“空白模板”,進入創建自定義授權策略的頁麵。

  5. 填寫授權策略名稱,並將如下內容填寫至策略內容欄。

  1. {
  2. "Statement": [
  3. {
  4. "Effect": "Allow",
  5. "Action": "iot:*",
  6. "Resource": "*",
  7. "Condition": {
  8. "IpAddress": {
  9. "acs:SourceIp": [
  10. "10.101.168.111/24"
  11. ]
  12. },
  13. "DateLessThan": {
  14. "acs:CurrentTime": "2016-01-01T00:00:00+08:00"
  15. },
  16. "Bool": {
  17. "acs:SecureTransport": "true"
  18. }
  19. }
  20. }
  21. ],
  22. "Version": "1"
  23. }
  1. 單擊新建授權策略,授權策略新建成功,然後單擊關閉

  2. 單擊頁麵左側的用戶管理,進入用戶管理頁麵將剛才新建的策略授權給需要的子賬號。

  3. 找到需要授權的子賬號,單擊其右側操作欄下麵的授權按鈕,進入“編輯個人授權”頁麵。

  4. 搜索剛才新建的策略名稱,選中後單擊 > 以將該權限添加至“已選擇授權策略名稱”欄中,最後單擊確定,完成對該賬號的策略授權。

拒絕請求

對於訪問 IP 地址為 10.101.169.111 的用戶,拒絕對北京域的名稱以 online 和 product 開頭的 Instance 下麵的所有 Table 執行寫操作(不包括對 Instance 的操作)。策略內容如下,創建自定義授權策略和給子賬號授權的步驟同上。

  1. {
  2. "Statement": [
  3. {
  4. "Effect": "Deny",
  5. "Action": [
  6. "iot:Query*",
  7. "iot:List*",
  8. "iot:Get*",
  9. "iot:BatchGet*"
  10. ],
  11. "Resource": "*",
  12. "Condition": {
  13. "IpAddress": {
  14. "acs:SourceIp": [
  15. "10.101.169.111"
  16. ]
  17. }
  18. }
  19. }
  20. ],
  21. "Version": "1"
  22. }

最後更新:2016-11-24 15:57:38

  上一篇:go 進階使用 STS__授權管理_阿裏雲物聯網套件-阿裏雲
  下一篇:go RAM 和 STS 介紹__授權管理_阿裏雲物聯網套件-阿裏雲