IAM權限簡介
如果您需要對您的對象存儲(ZOS)資源進行精細的權限管理,您可以使用統一身份認證(Identity and Access Management,簡稱IAM)服務。IAM是一種基于用戶的(de)授權(quan)策略。通過設置IAM策略,您(nin)可以(yi)控(kong)制用戶訪問您(nin)名下哪些資源的(de)權(quan)限(xian),例(li)如限(xian)制您(nin)的(de)用戶只擁有對(dui)某一個桶的(de)讀權(quan)限(xian)等(deng)。
如(ru)果(guo)當前的(de)天翼云賬號已經能滿(man)足(zu)您(nin)的(de)要(yao)求,您(nin)可(ke)以跳過本(ben)章(zhang)節,不(bu)需要(yao)創建獨立的(de)IAM用(yong)戶,不(bu)影響您(nin)使用(yong)ZOS的(de)其(qi)它功能。
默(mo)認情況下,天翼云主(zhu)賬(zhang)號擁(yong)有(you)對(dui)資(zi)源(yuan)的完全控制權(quan)限,而主(zhu)賬(zhang)號創(chuang)建的IAM用(yong)(yong)戶沒有(you)任(ren)何權(quan)限。主(zhu)賬(zhang)號將IAM用(yong)(yong)戶加入用(yong)(yong)戶組,并給用(yong)(yong)戶組授(shou)(shou)(shou)予策略或角色之后,IAM用(yong)(yong)戶獲得(de)相應的權(quan)限,這一(yi)過程稱為授(shou)(shou)(shou)權(quan)。授(shou)(shou)(shou)權(quan)后,IAM用(yong)(yong)戶就可以基于被授(shou)(shou)(shou)予的權(quan)限對(dui)云服(fu)務進行操作。
使用場景
以下場景(jing),您(nin)可以使用IAM進行權限控制。
- 對同一賬號下的不同IAM用戶授予相同權限。
- 對所有ZOS資源或者多個桶配置相同權限。
- 配置ZOS服務級別的權限,例如列舉某一賬號下的所有桶。
約束與限制
- 對象存儲IAM權限管理支持的區域請參見產品能力地圖。
- 當前僅支持通過JSON視圖創建自定義策略。
操作步驟
- 創建用戶組和授權
在IAM控制臺創建用戶組,并授予權限。 - 創建IAM用戶和登錄
在IAM控制臺創建用戶,并將其加入上一步創建的用戶組。
IAM策略
在向用戶組(zu)授(shou)(shou)權(quan)時,您需要(yao)選擇授(shou)(shou)權(quan)策略。授(shou)(shou)權(quan)策略有兩種:系統(tong)策略和自定(ding)義策略。
IAM中為各云服務預置了系統(tong)策略(lve),方(fang)便您快速完(wan)成基(ji)礎權限(xian)配(pei)置。ZOS為您預置了zos admin和(he)zos viewer兩個系統(tong)策略(lve)。其中,zos admin擁(yong)有對(dui)ZOS資源的完(wan)全(quan)控制(zhi)權限(xian),zos viewer擁(yong)有對(dui)ZOS資源的GET和(he)LIST類權限(xian)。
如果系統預置的系統權限不滿足您的授權要求,您還可以創建自定義策略。
注意由于ZOS為全局級云服務(wu),您在(zai)創建自定義策略(lve)(lve)時,策略(lve)(lve)的作(zuo)用范圍需(xu)要(yao)選擇(ze)全局級。如選擇(ze)資源池級,策略(lve)(lve)可能會不(bu)生(sheng)效。
為幫助您(nin)創建(jian)自定(ding)義(yi)策略(lve),下面將介(jie)紹IAM策略(lve)語法和自定(ding)義(yi)策略(lve)中可以添加的ZOS授(shou)權項(Action)。
策略語法
策(ce)略(lve)結構:包括Version(策(ce)略(lve)版本號(hao))和Statement(策(ce)略(lve)權限語句)兩部分,其中(zhong)Statement可以(yi)有多個,表示不同的授(shou)權項。
策略參(can)數(shu)(shu):包含Version和(he)Statement兩部分,下(xia)面介紹策略參(can)數(shu)(shu)詳細說明。了解策略參(can)數(shu)(shu)后,您可以根據場(chang)景自定(ding)義策略。
關于策略結構和參數的詳細介紹,請參考IAM關于策略語法的介紹。
以下為(wei)策略語法的示例,該策略允(yun)許對ZOS的所有資源進(jin)行GET類(lei)操作。
{
"Version": "1.1",
"Statement": [
{
"Action": [
"zos:*:Get"
],
"Effect": "Allow"
}
]
}
授權項(Action)
Action分為Service級(ji)(ji)(ji)別(bie)、Bucket級(ji)(ji)(ji)別(bie)以(yi)及Object級(ji)(ji)(ji)別(bie)。
- Service級別
| 權限 | S3 API | Action |
|---|---|---|
| 列舉全部桶 | ListBuckets | zos:AllMyBuckets:List |
| 創建桶 | CreateBucket | zos:Bucket:Create |
| 獲取AK/SK | 無 | zos:Keys:Get |
| 資源包管理 | 無 | zos:ResourceBundles:Get |
| 接入管理(VPC) | 無 | zos:VPC:Get |
| 用戶數據統計 | 無 | zos:UserUsage:Get |
| 獲取桶數據統計 | 無 | zos:BucketUsage:Get |
| 查詢Endpoint | 無 | zos:Endpoint:Get |
- Bucket級別
| 權限 | S3 API | Action |
|---|---|---|
| 查詢桶詳情 | 無 | zos:BucketInfo:Get |
| 刪除桶 | DeleteBucket | zos:Bucket:Delete |
| 刪除桶策略 | DeleteBucketPolicy | zos:BucketPolicy:Delete |
| 刪除桶靜態網站托管配置 | DeleteBucketWebsite | zos:BucketWebsite:Delete |
| 刪除桶跨域復制規則 | DeleteReplicationConfiguration | zos:ReplicationConfiguration:Delete |
| 獲取桶ACL | GetBucketAcl | zos:BucketAcl:Get |
| 獲取桶CORS配置 | GetBucketCORS | zos:BucketCORS:Get |
| 獲取桶加密配置 | GetBucketEncryption | zos:BucketEncryption:Get |
| 獲取桶日志記錄 | GetBucketLogging | zos:BucketLogging:Get |
| 獲取桶事件通知配置 | GetBucketNotification | zos:BucketNotification:Get |
| 獲取桶合規保留策略 | GetBucketObjectLockConfiguration | zos:BucketObjectLockConfiguration:Get |
| 獲取桶策略 | GetBucketPolicy | zos:BucketPolicy:Get |
| 獲取桶標簽 | GetBucketTagging | zos:BucketTagging:Get |
| 獲取桶版本狀態 | GetBucketVersioning | zos:BucketVersioning:Get |
| 獲取桶靜態網站托管配置/數據回源 | GetBucketWebsite | zos:BucketWebsite:Get |
| 獲取桶清單配置 | GetInventoryConfiguration | zos:InventoryConfiguration:Get |
| 獲取桶生命周期規則 | GetLifecycleConfiguration | zos:LifecycleConfiguration:Get |
| 獲取桶跨域復制規則 | GetReplicationConfiguration | zos:ReplicationConfiguration:Get |
| 設置桶ACL | PutBucketAcl | zos:BucketAcl:Put |
| 設置桶CORS配置 | PutBucketCORS | zos:BucketCORS:Put |
| 設置桶加密配置 | PutBucketEncryption | zos:BucketEncryption:Put |
| 設置桶日志記錄 | PutBucketLogging | zos:BucketLogging:Put |
| 設置桶事件通知配置 | PutBucketNotification | zos:BucketNotification:Put |
| 設置桶合規保留策略 | PutBucketObjectLockConfiguration | zos:BucketObjectLockConfiguration:Put |
| 設置桶策略 | PutBucketPolicy | zos:BucketPolicy:Put |
| 設置桶標簽 | PutBucketTagging | zos:BucketTagging:Put |
| 設置桶多版本 | PutBucketVersioning | zos:BucketVersioning:Put |
| 設置桶靜態網站托管配置 | PutBucketWebsite | zos:BucketWebsite:Put |
| 設置桶請求者付費配置 | PutBucketRequestPayment | zos:BucketRequestPayment:Put |
| 設置桶清單配置 | PutInventoryConfiguration | zos:InventoryConfiguration:Put |
| 設置桶生命周期規則 | PutLifecycleConfiguration | zos:LifecycleConfiguration:Put |
| 設置桶跨域復制規則 | PutReplicationConfiguration | zos:ReplicationConfiguration:Put |
| 列舉桶內對象 | ListBucket | zos:Bucket:List |
| 列舉桶內多版本對象 | ListBucketVersions | zos:BucketVersions:List |
- Object級別
| 權限 | S3 API | Action |
|---|---|---|
| 獲取對象內容及元數據 | GetObject | zos:Object:Get |
| 上傳對象 | PutObject | zos:Object:Put |
| 刪除對象 | DeleteObject | zos:Object:Delete |
| 刪除對象標簽 | DeleteObjectTagging | zos:ObjectTagging:Delete |
| 刪除指定版本對象 | DeleteObjectVersion | zos:ObjectVersion:Delete |
| 刪除指定版本對象標簽 | DeleteObjectVersionTagging | zos:ObjectVersionTagging:Delete |
| 獲取對象ACL | GetObjectAcl | zos:ObjectAcl:Get |
| 設置對象ACL | PutObjectAcl | zos:ObjectAcl:Put |
| 獲取對象依法保留 | GetObjectRetention | zos:ObjectRetention:Get |
| 設置對象依法保留 | PutObjectRetention | zos:ObjectRetention:Put |
| 獲取指定版本對象內容及元數據 | GetObjectVersion | zos:ObjectVersion:Get |
| 獲取指定版本對象ACL | GetObjectVersionAcl | zos:ObjectVersionAcl:Get |
| 設置指定版本對象ACL | PutObjectVersionAcl | zos:ObjectVersionAcl:Put |
| 獲取對象標簽 | GetObjectTagging | zos:ObjectTagging:Get |
| 設置對象標簽 | PutObjectTagging | zos:ObjectTagging:Put |
| 獲取指定版本對象標簽 | GetObjectVersionTagging | zos:ObjectVersionTagging:Get |
| 設置指定版本對象標簽 | PutObjectVersionTagging | zos:ObjectVersionTagging:Put |
| 列舉已上傳未合并段 | ListMultipartUploadParts | zos:MultipartUploadParts:List |
| 取消分段上傳任務 | AbortMultipartUpload | zos:MultipartUpload:Abort |
| 解凍歸檔存儲對象 | RestoreObject | zos:Object:Restore |