このトピックでは、カスタムオブジェクトストレージサービス (OSS) バケットにアクセスするために、Container Registryが引き受けるResource Access Management (RAM) ロールにポリシーをアタッチする方法について説明します。
背景情報
デフォルトのOSSバケット
Container RegistryのデフォルトのOSSバケットを使用する前に、Container Registryにクラウドリソースへのアクセス権限を付与する必要があります。 これにより、Container RegistryはデフォルトのOSSバケットを作成し、Container Registryインスタンスを初期化できます。
カスタムOSSバケット
カスタムOSSバケットを使用する場合は、RAMロールを作成し、そのロールにOSSバケットの権限を付与する必要があります。 コンテナレジストリは、RAMロールを引き受けた後、カスタムOSSバケットにアクセスできます。
ステップ1: RAMロールの作成
Container RegistryがカスタムOSSバケットにアクセスする場合は、Container Registryインスタンスが属するAlibaba CloudアカウントにAliyunContainerRegistryCustomizedOSSBucketRoleという名前のロールを作成する必要があります。
手順
管理者権限を持つRAMユーザーとしてRAMコンソールにログインします。
左側のナビゲーションウィンドウで、 .
ロールページをクリックします。ロールの作成.
ロールの作成ページを選択します。Alibaba Cloudアカウント[ロールタイプの選択] セクションで、次へ.
RAMロールのパラメーターを設定します。
RAMロール名.
注.
[信頼できるAlibaba Cloudアカウントの選択] セクションで、現在のAlibaba Cloudアカウントまたはその他のAlibaba Cloudアカウントを選択します。
現在のAlibaba Cloudアカウント: Alibaba Cloudアカウントに属するRAMユーザーにRAMロールを引き受けたい場合は、[現在のAlibaba Cloudアカウント] を選択します。
その他のAlibaba Cloudアカウント: 別のAlibaba Cloudアカウントに属するRAMユーザーにRAMロールを引き受けたい場合は、その他のAlibaba Cloudアカウントを選択し、Alibaba CloudアカウントのIDを入力します。 このオプションは、異なるAlibaba Cloudアカウントに属するリソースに対する権限を付与するために提供されます。 詳細については、「RAMロールを使用してAlibaba Cloudアカウント全体に権限を付与する」をご参照ください。
Alibaba CloudアカウントのIDを
[セキュリティ設定] ページ
重要Alibaba Cloudアカウントに属するすべてのRAMユーザーではなく、特定のRAMユーザーにRAMロールを引き受けたい場合は、次のいずれかの方法を使用できます。
RAMロールの信頼ポリシーを変更します。 詳細については、「例1: RAMロールの信頼できるエンティティをAlibaba Cloudアカウントに変更する」をご参照ください。
RAMユーザーにアタッチされているロール引き受けポリシーを変更します。 詳細については、「」をご参照ください。RAMユーザーが引き受けることができるRAMロールを指定できますか?
[OK] をクリックします。
閉じる.
ステップ2: RAMロールにポリシーをアタッチする
RAMロールにAliyunContainerRegistryCustomizedOSSBucketRolePolicyポリシーをアタッチします。 このポリシーには、OSSバケットからContainer Registryリポジトリに関する情報を読み取る権限が含まれています。 複数のカスタム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>", # Replace <YOUR_BUCKET_NAME> with the name of the bucket that you want to access.
"acs:oss:*:*:<YOUR_BUCKET_NAME>/*" # Replace <YOUR_BUCKET_NAME> with the name of the bucket that you want to access.
],
"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 the name of the bucket that you want to access.
"acs:oss:*:*:<YOUR_BUCKET_NAME>/*" # Replace <YOUR_BUCKET_NAME> with the name of the bucket that you want to access.
],
"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"
}
]
}
ステップ3: RAMロールに信頼ポリシーをアタッチする
RAMロールの信頼ポリシーにContainer Registryを追加します。 これにより、Container RegistryはカスタムOSSバケットにアクセスできます。
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"cr.aliyuncs.com"
]
}
}
],
"Version": "1"
}