當您需要使用自定義OSS Bucket時,需要為賬號添加RAM角色,并為該RAM角色授予對OSS Bucket操作的權限,然后容器鏡像服務才能正常訪問該OSS Bucket。
步驟一:創建RAM角色
容器鏡像服務訪問自定義OSS Bucket時,需要為阿里云賬號創建的角色名為AliyunContainerRegistryCustomizedOSSBucketRole。
操作步驟
使用RAM管理員登錄RAM控制臺。
在左側導航欄,選擇 。
在角色頁面,單擊創建角色。
在創建角色頁面,選擇可信實體類型為阿里云賬號,然后單擊下一步。
設置角色信息。
輸入角色名稱。
輸入備注。
選擇信任的云賬號。
當前云賬號:當您允許當前阿里云賬號下的所有RAM用戶扮演該RAM角色時,您可以選擇當前云賬號。
其他云賬號:當您允許其他阿里云賬號下的所有RAM用戶扮演該RAM角色時,您可以選擇其他云賬號,然后輸入其他阿里云賬號(主賬號)ID。該項主要針對跨阿里云賬號的資源授權訪問場景,相關教程,請參見跨阿里云賬號的資源授權。
您可以在安全設置頁面查看阿里云賬號(主賬號)ID。
重要如果您僅允許指定的RAM用戶扮演該RAM角色,而不是阿里云賬號(主賬號)下的所有RAM用戶,您可以采取以下兩種方式:
修改RAM角色的信任策略。具體操作,請參見示例一:修改RAM角色的可信實體為阿里云賬號。
修改RAM用戶的角色扮演權限策略。具體操作,請參見能否指定RAM用戶具體可以扮演哪個RAM角色?。
單擊完成。
單擊關閉。
步驟二:配置RAM角色的權限策略
配置該RAM角色的策略,使其擁有對指定的OSS Bucket資源讀取容器鏡像倉庫信息的權限,RAM角色的權限策略名為AliyunContainerRegistryCustomizedOSSBucketRolePolicy。當需要獲取多個自定義OSS Bucket信息時,可向Resource中添加多個OSS Bucket值。
{
"Version": "1",
"Statement": [
{
"Action": [
"oss:GetObject",
"oss:PutObject",
"oss:DeleteObject",
"oss:ListParts",
"oss:AbortMultipartUpload",
"oss:InitiateMultipartUpload",
"oss:CompleteMultipartUpload",
"oss:DeleteMultipleObjects",
"oss:ListMultipartUploads",
"oss:ListObjects",
"oss:DeleteObjectVersion",
"oss:GetObjectVersion",
"oss:ListObjectVersions",
"oss:PutObjectTagging",
"oss:GetObjectTagging",
"oss:DeleteObjectTagging"
],
"Resource": [
"acs:oss:*:*:cri-*",
"acs:oss:*:*:cri-*/*",
"acs:oss:*:*:<YOUR_BUCKET_NAME>", # 請將<YOUR_BUCKET_NAME>替換為您實際需要授權的Bucket名稱。
"acs:oss:*:*:<YOUR_BUCKET_NAME>/*" # 請將<YOUR_BUCKET_NAME>替換為您實際需要授權的Bucket名稱。
],
"Effect": "Allow",
"Condition": {
}
},
{
"Action": [
"oss:PutBucket",
"oss:GetBucket",
"oss:GetBucketLocation",
"oss:PutBucketEncryption",
"oss:GetBucketEncryption",
"oss:PutBucketAcl",
"oss:GetBucketAcl",
"oss:PutBucketLogging",
"oss:GetBucketReferer",
"oss:PutBucketReferer",
"oss:GetBucketLogging",
"oss:PutBucketVersioning",
"oss:GetBucketVersioning",
"oss:GetBucketLifecycle",
"oss:PutBucketLifecycle",
"oss:DeleteBucketLifecycle",
"oss:GetBucketTransferAcceleration"
],
"Resource": [
"acs:oss:*:*:cri-*",
"acs:oss:*:*:cri-*/*",
"acs:oss:*:*:<YOUR_BUCKET_NAME>", # 請將<YOUR_BUCKET_NAME>替換為您實際需要授權的Bucket名稱。
"acs:oss:*:*:<YOUR_BUCKET_NAME>/*" # 請將<YOUR_BUCKET_NAME>替換為您實際需要授權的Bucket名稱。
],
"Effect": "Allow",
"Condition": {
}
},
{
"Effect": "Allow",
"Action": "oss:ListBuckets",
"Resource": [
"acs:oss:*:*:*",
"acs:oss:*:*:*/*"
],
"Condition": {
}
},
{
"Action": [
"vpc:DescribeVpcs"
],
"Resource": "acs:vpc:*:*:vpc/*",
"Effect": "Allow",
"Condition": {
}
},
{
"Action": [
"cms:QueryMetricLast",
"cms:QueryMetricList"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
步驟三:配置RAM角色的信任策略
為該RAM角色的信任策略中添加容器鏡像服務,使容器鏡像服務可以訪問用戶自定義的OSS Bucket。
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"cr.aliyuncs.com"
]
}
}
],
"Version": "1"
}