配置示例一:只配置VPC終端節點策略
場景描述:
只允許VPC1內的服務器下載桶mybucket中的對象。
其中VPC1的ID為:4dad1f75-0361-4aa4-ac75-1ffdda3a0fec。
配置方法:
配置VPC1的終端節點策略如下:
入口:服務列表 > VPC終端節點 > 單擊對應VPC終端節點ID(OBS雙端固定的終端節點) > 策略 > 編輯
[ { "Action": [ "obs:object:GetObject" ], "Resource": [ "obs:*:*:object:mybucket/*" ], "Effect": "Allow" } ]
配置示例二:只配置VPC終端節點策略,禁止指定資源下載
場景描述:
除了桶mybucket中的名為myobject對象外,允許VPC1內的服務器下載桶mybucket中所有其他對象。
配置方法:
配置VPC1的終端節點策略如下:
入口:服務列表 > VPC終端節點 > 單擊對應VPC終端節點ID(OBS雙端固定的終端節點) > 策略 > 編輯
[ { "Action": [ "obs:object:GetObject" ], "Resource": [ "obs:*:*:object:mybucket/*" ], "Effect": "Allow" }, { "Action": [ "obs:object:GetObject" ], "Resource": [ "obs:*:*:object:mybucket/myobject" ], "Effect": "Deny" } ]
配置示例三:同時配置VPC終端節點策略與桶策略
場景描述:
只允許VPC1內的服務器上傳/下載桶mybucket中的對象,并且只允許桶mybucket中的對象被VPC1內的服務器上傳/下載。
其中VPC1的ID為:4dad1f75-0361-4aa4-ac75-1ffdda3a0fec。
配置方法:
配置VPC1的終端節點策略如下:
入口:服務列表 > VPC終端節點 > 單擊對應VPC終端節點ID(OBS雙端固定的終端節點) > 策略 > 編輯
[{"Action": ["obs:object:GetObject","obs:object:PutObject"],"Resource": ["obs:*:*:object:mybucket/*"],"Effect": "Allow"}]配置桶mybucket的桶策略如下:
需要配置兩個桶策略:桶策略1:允許VPC1內的服務器上傳/下載桶mybucket中的對象。其中statementId可自定義,domainId和userId需要設置為允許上傳下載的賬號ID和用戶ID。
{"Statement": [{"Sid": "statementId","Effect": "Allow","Principal": {"ID": ["domain/domainId:user/userId"]},"Action": ["GetObject", "PutObject"],"Resource": ["mybucket/*"],"Condition": {"StringEquals": {"SourceVpc": ["4dad1f75-0361-4aa4-ac75-1ffdda3a0fec"]}}}]}桶策略2:除了VPC1外的其他VPC內的服務器均不能操作桶mybucket及桶中的對象。其中DenyReqNotFromVpc可自定義。
{"Statement": [{"Sid": "DenyReqNotFromVpc","Effect": "Deny","Principal": {"ID": ["*"]},"Action": "*","Resource": ["mybucket", "mybucket/*"],"Condition": {"StringNotEqual": {"SourceVpc": ["4dad1f75-0361-4aa4-ac75-1ffdda3a0fec"]}}}]}說明
設置上述桶策略后,被授權的IAM用戶可以正常通過SDK或API進行上傳下載操作。如果希望在控制臺或OBS Browser+上進行上傳下載,還需要在IAM權限中額外配置obs:bucket:ListAllMyBuckets和obs:bucket:ListBucket權限,否則登錄控制臺和OBS Browser+時會報錯,無法看到桶和桶內對象。
配置示例四:同時配置VPC終端節點策略與桶策略后,再授權其他云服務訪問桶
場景描述:
當同時設置了VPC1的終端節點策略與桶mybucket的桶策略后,由于雙端固定的限制,其它云服務包括OBS就無法訪問桶mybucket。如果想要授權其它云服務能夠訪問桶mybucket,可以通過委托授權的方式。
其中VPC1的ID為:4dad1f75-0361-4aa4-ac75-1ffdda3a0fec。
配置方法:
配置VPC1的終端節點策略如下:
只允許VPC1內的服務器上傳/下載桶mybucket中的對象。
入口:服務列表 > VPC終端節點 > 單擊對應VPC終端節點ID(OBS雙端固定的終端節點) > 策略 > 編輯
[{"Action": ["obs:object:GetObject","obs:object:PutObject"],"Resource": ["obs:*:*:object:mybucket/*"],"Effect": "Allow"}]創建IAM委托,委托其它云服務訪問桶mybucket。例如,委托OBS,綁定系統策略OBS FullAccess,也可以創建自定義策略并綁定該委托。
配置桶mybucket的桶策略如下:
只允許桶mybucket中的對象被VPC1內的服務器或者委托名為testAgencyName所對應授權的云服務訪問桶mybucket中的對象。其中委托名以2實際創建的IAM委托名稱為準。{"Statement": [{"Effect": "Allow","Principal": {"ID": ["*"]},"Action": ["*"],"Resource": ["mybucket/*"],"Condition": {"StringEquals": {"SourceVpc": ["4dad1f75-0361-4aa4-ac75-1ffdda3a0fec"]}}},{"Effect": "Allow","Principal": {"ID": ["*"]},"Action": ["*"],"Resource": ["mybucket/*"],"Condition": {"StringEquals": {"ServiceAgency": ["testAgencyName"]}}}]}
同時,桶策略也可按如下配置達到同樣的效果:{"Statement": [{"Effect": "Deny","Principal": {"ID": ["*"]},"Action": ["*"],"Resource": ["mybucket/*"],"Condition": {"StringNotEquals": {"SourceVpc": ["4dad1f75-0361-4aa4-ac75-1ffdda3a0fec"],"ServiceAgency": ["testAgencyName"]}}}]}