Cette rubrique explique comment configurer le contrôle d'accès RAM lors de l'utilisation d'un bucket OSS personnalisé avec Container Registry.
Contexte
-
Bucket OSS par défaut
Lorsque vous utilisez le bucket OSS par défaut fourni par Container Registry, vous devez autoriser Container Registry à accéder aux ressources cloud. Container Registry crée ensuite un bucket OSS et initialise l'instance.
-
Bucket OSS personnalisé
Lorsque vous utilisez un bucket OSS personnalisé, vous devez créer un rôle RAM pour votre compte Alibaba Cloud et lui accorder les autorisations nécessaires pour accéder au bucket. Cela permet à Container Registry d'accéder au bucket.
Étape 1 : Créer un rôle RAM
Pour permettre à Container Registry d'accéder à un bucket OSS personnalisé, créez un rôle RAM nommé AliyunContainerRegistryCustomizedOSSBucketRole pour votre compte Alibaba Cloud.
Connectez-vous à la console RAM en tant qu'administrateur RAM.
Dans le volet de navigation de gauche, choisissez .
Sur la page Roles, cliquez sur Create Role.
Sur la page Create Role, sélectionnez Cloud Service comme Principal Type. Sélectionnez ensuite Container Registry et cliquez sur Confirm.
Dans le champ Role Name, saisissez
AliyunContainerRegistryCustomizedOSSBucketRolepuis cliquez sur Confirm.
Étape 2 : Configurer la politique d'accès
Configurez une politique d'accès pour le rôle RAM afin de lui accorder l'accès aux ressources du bucket OSS spécifié. La politique d'accès doit être nommée AliyunContainerRegistryCustomizedOSSBucketRolePolicy. Si vous devez accéder à plusieurs buckets OSS personnalisés, ajoutez plusieurs entrées de bucket dans la section 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",
"oss:PutBucketTransferAcceleration",
"oss:PutBucketReplication",
"oss:GetBucketReplication",
"oss:DeleteBucketReplication",
"oss:GetBucketReplicationProgress"
],
"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"
}
]
}