このトピックでは、Container Registry でカスタム OSS バケットを使用する際に RAM アクセス制御を設定する方法について説明します。
背景情報
-
デフォルト OSS バケット
Container Registry が提供するデフォルト OSS バケットを使用する場合、Container Registry にクラウドリソースへのアクセスを認可する必要があります。Container Registry は OSS バケットを作成し、インスタンスを初期化します。
-
カスタム OSS バケット
カスタム OSS バケットを使用する場合、Alibaba Cloud アカウントに RAM ロールを作成し、このロールにバケットへのアクセスに必要な権限を付与する必要があります。これにより、Container Registry がバケットにアクセスできるようになります。
ステップ1:RAM ロールの作成
Container Registry がカスタム OSS バケットにアクセスできるように、Alibaba Cloud アカウントに AliyunContainerRegistryCustomizedOSSBucketRole という名前の RAM ロールを作成します。
-
RAM 管理者として Resource Access Management (RAM) コンソール にログインします。
-
左側メニューで、 を選択します。
-
ロール ページで、ロール作成 をクリックします。
-
ロールの作成 ページで、クラウドサービス を Principal Type として選択します。次に、Container Registry を選択し、OK をクリックします。
-
ロール名 フィールドに
AliyunContainerRegistryCustomizedOSSBucketRoleを入力し、OK をクリックします。
ステップ2:アクセスポリシーの設定
RAM ロールにアクセスポリシーを設定し、指定した OSS バケット内のリソースへのアクセス権を付与します。アクセスポリシーの名前は AliyunContainerRegistryCustomizedOSSBucketRolePolicy とする必要があります。複数のカスタム OSS バケットにアクセスする必要がある場合は、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>", # <YOUR_BUCKET_NAME> を実際のバケット名に置き換えます。
"acs:oss:*:*:<YOUR_BUCKET_NAME>/*" # <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>", # <YOUR_BUCKET_NAME> を実際のバケット名に置き換えます。
"acs:oss:*:*:<YOUR_BUCKET_NAME>/*" # <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"
}
]
}