このトピックでは、Container Registry によって偽装された Resource Access Management (RAM) ロールにポリシーをアタッチして、カスタム Object Storage Service (OSS) バケットにアクセスする方法について説明します。
背景情報
デフォルト OSS バケット
Container Registry のデフォルト OSS バケットを使用する前に、Container Registry にクラウドリソースへのアクセス権限を付与する必要があります。これにより、Container Registry はデフォルトの OSS バケットを作成でき、Container Registry インスタンスを初期化できます。
カスタム OSS バケット
カスタム OSS バケットを使用する場合は、RAM ロールを作成し、そのロールに OSS バケットに対する権限を付与する必要があります。Container Registry は、RAM ロールを偽装した後にカスタム OSS バケットにアクセスできます。
ステップ 1: RAM ロールを作成する
Container Registry がカスタム OSS バケットにアクセスできるようにするには、Alibaba Cloud アカウント用に AliyunContainerRegistryCustomizedOSSBucketRole という名前の RAM ロールを作成する必要があります。
管理者権限を持つ RAM ユーザーとして RAM コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。

[ロールの作成] ページで、[信頼できるエンティティの種類] を [Alibaba Cloud サービス] に設定し、[Container Registry] を選択してから、[OK] をクリックします。

[ロール名] に
AliyunContainerRegistryCustomizedOSSBucketRoleを入力し、[OK] をクリックします。
ステップ 2: RAM ロールにポリシーをアタッチする
RAM ロールにポリシーをアタッチして、指定された OSS バケットからイメージリポジトリ情報を読み取る権限を付与します。アクセスポリシーには AliyunContainerRegistryCustomizedOSSBucketRolePolicy という名前を付ける必要があります。複数のカスタム OSS バケットにアクセスするには、Resource 要素に複数の OSS バケットの値を追加できます。
{
"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"
}
]
}