リソースグループを活用することで、Container Registryリソースの一元管理が可能になり、RAM (Resource Access Management) ポリシーを用いたグループ単位でのきめ細かなアクセス制御を実現できます。これにより、Alibaba Cloud アカウントで最小権限の原則 (PoLP) を徹底できます。
リソースグループレベルの権限設定は、サポート対象リソースタイプとアクションに限られます。サポート対象外アクションの場合、リソースグループに対するポリシーを指定しても無視されます。アクセス制御のため、アカウントに対するポリシーを設定する必要があります。
仕組み
リソースグループは、プロジェクトや環境ごとにリソースを整理します。リソースをグループ化したら、そのグループにのみ権限を限定する RAM ポリシーをアイデンティティ (RAM ユーザー、ユーザーグループ、ロールなど) にアタッチできます。詳細については、「リソースのグループ化と権限付与」をご参照ください。
このアプローチには、主に 2 つのメリットがあります。
-
きめ細かなアクセス制御:アカウント全体の権限を付与する代わりに、アイデンティティのアクセスを特定のグループ内のリソースのみに制限できます。これにより、プロジェクト固有のワークロードを分離し、意図しないアクセスのリスクを軽減できます。
-
管理の簡素化:新しいリソースがリソースグループに追加されると、そのグループに限定された権限を持つ RAM アイデンティティは自動的にアクセスできます。新しいリソースが作成されるたびに RAM ポリシーを更新する必要はありません。
RAM ユーザーへのリソースグループレベルの権限付与
このセクションでは、特定のリソースグループ内のContainer Registryリソースにのみアクセス権限を RAM ユーザーに付与する方法について説明します。
1. 前提条件
-
RAM ユーザーが作成されていること。
-
リソースグループを作成し、対象リソースがそのグループ内にあること。詳細については、「リソースグループの作成」、「リソースをリソースグループに自動追加」、および「リソースをリソースグループに手動で追加」をご参照ください。
2. 権限付与
リソースグループレベルの権限は、Resource Management コンソールまたは RAM コンソールのいずれかから付与できます。
Resource Management コンソール
-
Resource Management コンソールにログインします。
-
[Resource Group] ページで、対象のリソースグループを見つけ、[Actions] 列の [Manage Permission] をクリックします。
-
[Permissions] タブで、[Grant Permission] をクリックします。
-
[Grant Permission] パネルで、プリンシパルとアクセスポリシーを設定します。
-
Principal:RAM ユーザーを選択します。
-
Policy:[System Policy] または [Custom Policy] を選択します。詳細については、「カスタム権限ポリシーの作成」をご参照ください。
-
-
[Grant Permissions] をクリックします。
詳細については、「リソースグループに対する RAM アイデンティティへの権限付与」をご参照ください。
RAM コンソール
-
Alibaba Cloud アカウント (root ユーザー)または RAM 管理者アカウントを使用して、RAM コンソールにログインします。
-
左側のメニューで、を選択します。[Users] ページで、対象の RAM ユーザーを見つけ、[Actions] 列の [Add Permissions] をクリックします。
-
[Grant Permission] パネルで、RAM ユーザーに権限を追加します。
-
Resource Scope:[Resource Group] を選択します。
-
Principal:既存の RAM ユーザーまたは前のステップで作成した RAM ユーザーを選択します。
-
Access Policy:[System Policy] または [Custom Policy] を選択します。詳細については、「カスタム権限ポリシーの作成」をご参照ください。
-
-
[OK] をクリックします。
詳細については、「RAM ユーザーへの権限付与」をご参照ください。
サポート対象リソース
以下のContainer Registryリソースは、リソースグループレベルの権限付与をサポートしています。
|
Alibaba Cloud サービス |
サービスコード |
リソースタイプ |
|
Container Registry |
cr |
chartnamespace : チャート名前空間 |
|
Container Registry |
cr |
chartrepository : チャートリポジトリ |
|
Container Registry |
cr |
instance : インスタンス |
|
Container Registry |
cr |
namespace : イメージ名前空間 |
|
Container Registry |
cr |
repository : イメージリポジトリ |
上表に記載されていないリソースタイプのサポートをリクエストするには、Resource Management コンソールでフィードバックを送信してください。

サポート対象外アクション
以下のContainer Registryアクションは、リソースグループレベルの権限付与をサポートしていません。
|
アクション |
説明 |
|
cr:CancelArtifactDeleteTagTask |
- |
|
cr:CancelArtifactSubscriptionTask |
- |
|
cr:CancelDiagnosisTask |
- |
|
cr:CancelRepoSyncTask |
- |
|
cr:CreateArtifactBuildDiagnosisTask |
- |
|
cr:CreateArtifactBuildPhaseStatusTask |
- |
|
cr:CreateCloudProductAuth |
- |
|
cr:CreateClusterImageAnalysisTask |
- |
|
cr:CreateImageWorkloadAnalysisTask |
- |
|
cr:CreateInstanceFlowControlRule |
- |
|
cr:CreateMetadataNamespace |
- |
|
cr:CreateMetadataNote |
- |
|
cr:CreateMetadataOccurrence |
- |
|
cr:CreateStorageDomainRoutingRule |
- |
|
cr:CreateUserInfo |
- |
|
cr:DeleteCloudProductAuth |
- |
|
cr:DeleteExemptVul |
- |
|
cr:DeleteInstance |
- |
|
cr:DeleteInstanceFlowControlRule |
- |
|
cr:DeleteInstanceMigrateRule |
- |
|
cr:DeleteStorageDomainRoutingRule |
- |
|
cr:DeleteSyncCustomLink |
- |
|
cr:DisableInstanceHideAuthDomain |
- |
|
cr:EnableInstanceHideAuthDomain |
- |
|
cr:EnableRecycleBin |
- |
|
cr:GetAccessVpcLink |
- |
|
cr:GetClusterImageAnalysisTask |
- |
|
cr:GetDiagnosisTask |
- |
|
cr:GetImageWorkloadAnalysisTask |
- |
|
cr:GetInstanceFlowControlRule |
- |
|
cr:GetInstanceHideAuthDomainStatus |
- |
|
cr:GetInstanceMigrateRule |
- |
|
cr:GetInstanceUser |
- |
|
cr:GetMetadataNamespace |
- |
|
cr:GetMetadataNote |
- |
|
cr:GetMetadataOccurrence |
- |
|
cr:GetRecycleBinConfig |
- |
|
cr:GetRepoTagManifest |
- |
|
cr:GetRepositoryTag |
- |
|
cr:GetResourceQuota |
- |
|
cr:GetScanRule |
- |
|
cr:GetServiceAuthorization |
- |
|
cr:GetSignatureRule |
- |
|
cr:GetStorageDomainRoutingRule |
- |
|
cr:GetSyncCustomLink |
- |
|
cr:GetUserInfo |
- |
|
cr:GetWebHook |
- |
|
cr:ListArtifactBuildDiagnosisResult |
- |
|
cr:ListArtifactBuildPhaseStatus |
- |
|
cr:ListArtifactBuildRule |
- |
|
cr:ListArtifactComponents |
- |
|
cr:ListArtifacts |
- |
|
cr:ListChartNamespace |
- |
|
cr:ListChartRepository |
- |
|
cr:ListCloudProductAuth |
- |
|
cr:ListDiagnosisTask |
- |
|
cr:ListInstanceFlowControlRule |
- |
|
cr:ListInstanceUser |
- |
|
cr:ListMetadataNotes |
- |
|
cr:ListMetadataOccurrences |
- |
|
cr:ListUserBucket |
- |
|
cr:ListUserVpc |
- |
|
cr:RevokeInstanceUserLoginPassword |
- |
|
cr:StopChainInstance |
- |
|
cr:UpdateArtifactBuildRule |
- |
|
cr:UpdateExemptVul |
- |
|
cr:UpdateMetadataNote |
- |
|
cr:UpdateMetadataOccurrence |
- |
|
cr:UpdateStorageDomainRoutingRule |
- |
|
cr:UpdateSyncCustomLink |
- |
|
cr:UpdateSyncRule |
- |
|
cr:UpdateUserInfo |
- |
上記のアクションについては、 [Resource Scope] を [Account] に設定し、カスタムポリシーを作成する必要があります。
以下のポリシー例は、必要に応じてカスタマイズ可能です。
-
読み取り専用アクセスの許可
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetAccessVpcLink", "cr:GetClusterImageAnalysisTask", "cr:GetDiagnosisTask", "cr:GetImageWorkloadAnalysisTask", "cr:GetInstanceFlowControlRule", "cr:GetInstanceHideAuthDomainStatus", "cr:GetInstanceMigrateRule", "cr:GetInstanceUser", "cr:GetMetadataNamespace", "cr:GetMetadataNote", "cr:GetMetadataOccurrence", "cr:GetRecycleBinConfig", "cr:GetRepoTagManifest", "cr:GetRepositoryTag", "cr:GetResourceQuota", "cr:GetScanRule", "cr:GetServiceAuthorization", "cr:GetSignatureRule", "cr:GetStorageDomainRoutingRule", "cr:GetSyncCustomLink", "cr:GetUserInfo", "cr:GetWebHook", "cr:ListArtifactBuildDiagnosisResult", "cr:ListArtifactBuildPhaseStatus", "cr:ListArtifactBuildRule", "cr:ListArtifactComponents", "cr:ListArtifacts", "cr:ListChartNamespace", "cr:ListChartRepository", "cr:ListCloudProductAuth", "cr:ListDiagnosisTask", "cr:ListInstanceFlowControlRule", "cr:ListInstanceUser", "cr:ListMetadataNotes", "cr:ListMetadataOccurrences", "cr:ListUserBucket", "cr:ListUserVpc" ], "Resource": "*" } ] } -
フルアクセスの許可
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:CancelArtifactDeleteTagTask", "cr:CancelArtifactSubscriptionTask", "cr:CancelDiagnosisTask", "cr:CancelRepoSyncTask", "cr:CreateArtifactBuildDiagnosisTask", "cr:CreateArtifactBuildPhaseStatusTask", "cr:CreateCloudProductAuth", "cr:CreateClusterImageAnalysisTask", "cr:CreateImageWorkloadAnalysisTask", "cr:CreateInstanceFlowControlRule", "cr:CreateMetadataNamespace", "cr:CreateMetadataNote", "cr:CreateMetadataOccurrence", "cr:CreateStorageDomainRoutingRule", "cr:CreateUserInfo", "cr:DeleteCloudProductAuth", "cr:DeleteExemptVul", "cr:DeleteInstance", "cr:DeleteInstanceFlowControlRule", "cr:DeleteInstanceMigrateRule", "cr:DeleteStorageDomainRoutingRule", "cr:DeleteSyncCustomLink", "cr:DisableInstanceHideAuthDomain", "cr:EnableInstanceHideAuthDomain", "cr:EnableRecycleBin", "cr:GetAccessVpcLink", "cr:GetClusterImageAnalysisTask", "cr:GetDiagnosisTask", "cr:GetImageWorkloadAnalysisTask", "cr:GetInstanceFlowControlRule", "cr:GetInstanceHideAuthDomainStatus", "cr:GetInstanceMigrateRule", "cr:GetInstanceUser", "cr:GetMetadataNamespace", "cr:GetMetadataNote", "cr:GetMetadataOccurrence", "cr:GetRecycleBinConfig", "cr:GetRepoTagManifest", "cr:GetRepositoryTag", "cr:GetResourceQuota", "cr:GetScanRule", "cr:GetServiceAuthorization", "cr:GetSignatureRule", "cr:GetStorageDomainRoutingRule", "cr:GetSyncCustomLink", "cr:GetUserInfo", "cr:GetWebHook", "cr:ListArtifactBuildDiagnosisResult", "cr:ListArtifactBuildPhaseStatus", "cr:ListArtifactBuildRule", "cr:ListArtifactComponents", "cr:ListArtifacts", "cr:ListChartNamespace", "cr:ListChartRepository", "cr:ListCloudProductAuth", "cr:ListDiagnosisTask", "cr:ListInstanceFlowControlRule", "cr:ListInstanceUser", "cr:ListMetadataNotes", "cr:ListMetadataOccurrences", "cr:ListUserBucket", "cr:ListUserVpc", "cr:RevokeInstanceUserLoginPassword", "cr:StopChainInstance", "cr:UpdateArtifactBuildRule", "cr:UpdateExemptVul", "cr:UpdateMetadataNote", "cr:UpdateMetadataOccurrence", "cr:UpdateStorageDomainRoutingRule", "cr:UpdateSyncCustomLink", "cr:UpdateSyncRule", "cr:UpdateUserInfo" ], "Resource": "*" } ] }
アカウントレベルの権限を付与すると、アカウント内のすべての関連リソースへのアクセスが許可されます。常に最小権限の原則に従ってください。
よくある質問
リソースがどのリソースグループに属しているかを確認するにはどうすればよいですか。
-
方法 1:所属サービスのコンソールで確認
-
リソースが所属する Alibaba Cloud サービスのコンソールに移動します。通常、リソースの詳細ページの基本情報セクションにリソースグループが記載されています。
-
-
方法 2:Resource Management コンソールで確認
-
Resource Management コンソールにログインします。
-
を選択します。
-
左側のメニューで、対象リソースを所有するアカウントを選択します (デフォルトは [Current Account]) を選択します。
-
フィルター条件を使用してリソースを検索します。
-
[Resource Group Name] 列に、リソースが属するグループが表示されます。
-
特定のリソースグループ内のすべてのリソースを表示するにはどうすればよいですか。
-
方法 1:
-
Resource Management コンソールにログインします。
-
を選択します。
-
左側のメニューで、リソースを所有するアカウント (デフォルトは [Current Account]) の下にある、対象のリソースグループ名をクリックします。
-
右側の画面で、[Select resource types] ドロップダウンリストからクラウドサービスを選択します。
-
そのグループ内のすべてのリソースが表示されます。
-
-
方法 2:
-
Resource Management コンソールにログインします。
-
を選択します。
-
対象のリソースグループを見つけ、[Actions] 列の [Manage Resource] をクリックします。
-
リソース管理ページで、[Service] ドロップダウンリストからクラウドサービスを選択します。
-
そのグループ内のすべてのリソースが表示されます。
-
複数のリソースを別のリソースグループに一括で移動するにはどうすればよいですか。
-
Resource Management コンソールにログインします。
-
左側のメニューで、 を選択します。
-
対象のリソースグループを見つけ、[Actions] 列の [Manage Resource] をクリックします。
-
リソース管理ページで、フィルター条件を使用して移動したいリソースを検索します。
-
移動したいリソースのチェックボックスを選択します。
-
ページ下部にある [Transfer] をクリックします。
-
ダイアログボックスで、移動先のリソースグループを選択し、 [Confirm] をクリックします。