Este tópico descreve como configurar o controle de acesso RAM ao usar um bucket do OSS personalizado com o Container Registry.
Contexto
-
Bucket do OSS padrão
Ao usar o bucket do OSS padrão fornecido pelo Container Registry, você deve autorizar o Container Registry a acessar recursos da nuvem. O Container Registry cria então um bucket do OSS e inicializa a instância.
-
Bucket do OSS personalizado
Para usar um bucket do OSS personalizado, crie uma função RAM na sua conta Alibaba Cloud e conceda a essa função as permissões necessárias para acessar o bucket. Isso permite que o Container Registry acesse o bucket.
Etapa 1: Criar uma função RAM
Para permitir que o Container Registry acesse um bucket do OSS personalizado, crie uma função RAM chamada AliyunContainerRegistryCustomizedOSSBucketRole na sua conta Alibaba Cloud.
Faça logon no console RAM como administrador do RAM.
No painel de navegação à esquerda, escolha .
Na página Roles, clique em Create Role.
Na página Create Role, selecione Cloud Service como Principal Type. Em seguida, selecione Container Registry e clique em Confirm.
No campo Role Name, insira
AliyunContainerRegistryCustomizedOSSBucketRolee clique em Confirm.
Etapa 2: Configurar a política de acesso
Configure uma política de acesso para a função RAM a fim de conceder acesso aos recursos no bucket do OSS especificado. A política de acesso deve ter o nome AliyunContainerRegistryCustomizedOSSBucketRolePolicy. Caso precise acessar vários buckets do OSS personalizados, adicione múltiplas entradas de bucket na seção Resource.
{
"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>", # Replace <YOUR_BUCKET_NAME> with your bucket name.
"acs:oss:*:*:<YOUR_BUCKET_NAME>/*" # Replace <YOUR_BUCKET_NAME> with your bucket name.
],
"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>", # Replace <YOUR_BUCKET_NAME> with your bucket name.
"acs:oss:*:*:<YOUR_BUCKET_NAME>/*" # Replace <YOUR_BUCKET_NAME> with your bucket name.
],
"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"
}
]
}