Resource Access Management (RAM) は Alibaba Cloud によって提供される、ユーザーのアイデンティティとリソースの権限を管理するためのサービスです。RAM を使用すると、Alibaba Cloud アカウント (root ユーザー) のキーを他のユーザーと共有することを回避でき、ユーザーに必要最小限の権限を付与できます。RAM ではポリシーを使用して権限付与を定義します。このトピックでは、RAM ポリシーの一般的な構造と、 のポリシーステートメントを構成する要素である「アクション (Action)」「リソース (Resource)」および「条件 (Condition) 」について説明します。 は、RAM コード (RamCode) が dds で、 RESOURCE での権限付与がサポートされています。
一般的なポリシー構造
RAM ポリシーは、一般的に以下のような JSON 構造で構成されます。
{
"Version": "1",
"Statement": [
{
"Effect": "<Effect>",
"Action": "<Action>",
"Resource": "<Resource>",
"Condition": {
"<Condition_operator>": {
"<Condition_key>": [
"<Condition_value>"
]
}
}
}
]
} ポリシーのフィールドに関する説明:
Version:ポリシーのバージョン番号。現在のポリシーバージョンは 1 です。
Statement:
Effect:「許可するか、拒否するか」という、最終的な結果を定義します。有効な値:Allow (許可) または Deny (拒否)。
Action:「何をすることができるか、できないか」を定義する、リソースへの具体的な操作を指します。
Resource:「何に対して操作を行うか」を定義する、操作の具体的な対象です。対象となるリソースは、ARN (Alibaba Cloud Resource Name) を使用して指定できます。
Condition:「どのような状況下でポリシーが適用されるか」という、権限が有効になるための付加的な制約条件を定義します。このフィールドは任意です。
Condition operator:条件の演算子。条件キーの値とリクエスト値をどのように比較するかを定義する「比較方法」です。条件演算子は、条件のタイプによって異なります。
Condition_key:条件のキー。ポリシーの条件が満たされているかを判断するために、リクエストから参照・チェックされる特定の属性を指します。
Condition_value:条件の値。条件キーから取得されたリクエスト値と比較するための、具体的な「基準値」です。
アクション (Action)
下表に、 で定義されたアクションを示します。以下で各列名について説明します。
アクション:特定のリソースに対して実行可能な操作。ポリシー構文では
Action要素として指定します。API:アクションを具体的に実行するための API。
アクセスレベル:各 API に対して事前定義されているアクセスの種類。有効な値:create、list、get、update、delete。
リソースタイプ:アクションが作用するリソースの種類。リソースレベルでの権限をサポートするかどうかを示すことができます。ポリシーの有効性を確保するため、アクションの対象として適切なリソースを指定する必要があります。
リソースレベルの権限を持つ API の場合、必要なリソースタイプはアスタリスク (*) でマークされます。ポリシーの
Resource要素で対応する ARN を指定してください。リソースレベルの権限を持たない API の場合、「すべてのリソース」と表示され、ポリシーの
Resource要素でアスタリスク (*) でマークされます。
条件キー:サービスによって定義された条件のキー。このキーにより、きめ細やかなアクセス制御が可能になります。この制御は、アクション単体に適用することも、特定のリソースに対するアクションに適用することもできます。Alibaba Cloud は、サービス固有の条件キーに加えて、すべての RAM 統合サービスに適用可能な一連の共通条件キーを提供しています。詳細については、「共通条件キー」をご参照ください。
依存アクション:ある特定のアクションを実行するために、前提として実行が必要となる他のアクション。依存アクションの権限も RAM ユーザーまたは RAM ロールに付与する必要があります。
|
アクション |
API |
アクセスレベル |
リソースタイプ |
条件キー |
依存アクション |
| dds:CreateAccount | CreateAccount | create |
*DBInstance
|
なし | なし |
| dds:DescribeErrorLogRecords | DescribeErrorLogRecords | get |
*dbinstance
|
なし | なし |
| dds:ModifyDBInstanceConfig | ModifyDBInstanceConfig | update |
*Instance
|
なし | なし |
| dds:DescribeAuditLogFilter | DescribeAuditLogFilter | get |
*dbinstance
|
なし | なし |
| dds:ModifyNodeSpecBatch | ModifyNodeSpecBatch | update |
*Instance
|
なし | なし |
| dds:DescribeUserEncryptionKeyList | DescribeUserEncryptionKeyList | get |
*dbinstance
|
なし | なし |
| dds:ModifyDBInstanceSpec | ModifyDBInstanceSpec | update |
*Instance
|
なし | なし |
| dds:DescribeRoleZoneInfo | DescribeRoleZoneInfo | get |
*dbinstance
|
なし | なし |
| dds:DeleteGlobalSecurityIPGroup | DeleteGlobalSecurityIPGroup | delete |
*All Resource
|
なし | なし |
| dds:ModifyGlobalSecurityIPGroupName | ModifyGlobalSecurityIPGroupName | update |
*All Resource
|
なし | なし |
| dds:ModifyDBInstanceMaintainTime | ModifyDBInstanceMaintainTime | update |
*Instance
|
なし | なし |
| dds:DescribeAccounts | DescribeAccounts | get |
*Instance
|
なし | なし |
| dds:CreateDBInstance | CreateDBInstance | create |
*Instance
|
なし | なし |
| dds:DescribeGlobalSecurityIPGroup | DescribeGlobalSecurityIPGroup | list |
*All Resource
|
なし | なし |
| dds:DescribeDBInstancePerformance | DescribeDBInstancePerformance | get |
*dbinstance
|
dds:ResourceTag |
なし |
| dds:DescribeRenewalPrice | DescribeRenewalPrice | get |
*Instance
|
なし | なし |
| dds:DescribeVpcsForMongoDB | DescribeVpcsForMongoDB | list |
*All Resource
|
なし | なし |
| dds:AllocatePublicNetworkAddress | AllocatePublicNetworkAddress | update |
*Instance
|
なし | なし |
| dds:ListTagResources | ListTagResources | get |
*All Resource
|
なし | なし |
| dds:DescribeInstanceRecoverTime | DescribeInstanceRecoverTime | none |
*Instance
|
なし | なし |
| dds:DescribeActiveOperationTaskRegion | DescribeActiveOperationTaskRegion | list |
*All Resource
|
なし | なし |
| dds:DescribeClusterRecoverTime | DescribeClusterRecoverTime | get |
*Instance
|
なし | なし |
| dds:DescribeBackupTasks | DescribeBackupTasks | none |
*Instance
|
なし | なし |
| dds:CreateShardingDBInstance | CreateShardingDBInstance | create |
*Instance
|
なし | なし |
| dds:MigrateAvailableZone | MigrateAvailableZone | update |
*Instance
|
なし | なし |
| dds:ModifyResourceGroup | ModifyResourceGroup | update |
*dbinstance
|
なし | なし |
| dds:DescribeMongoDBLogConfig | DescribeMongoDBLogConfig | get |
*dbinstance
|
なし | なし |
| dds:DescribeActiveOperationTaskCount | DescribeActiveOperationTaskCount | get |
*All Resource
|
なし | なし |
| dds:TransferClusterBackup | TransferClusterBackup | none |
*Instance
|
なし | なし |
| dds:ModifyNodeSpec | ModifyNodeSpec | update |
*Instance
|
なし | なし |
| dds:DescribeDBInstanceSSL | DescribeDBInstanceSSL | get |
*Instance
|
なし | なし |
| dds:AllocateDBInstanceSrvNetworkAddress | AllocateDBInstanceSrvNetworkAddress | update |
*Instance
|
なし | なし |
| dds:ModifyDBInstanceDiskType | ModifyDBInstanceDiskType | update |
*Instance
|
なし | なし |
| dds:ModifyActiveOperationMaintenanceConfig | ModifyActiveOperationMaintenanceConfig | update |
*All Resource
|
なし | なし |
| dds:DescribeBackupPolicy | DescribeBackupPolicy | get |
*dbinstance
|
なし | なし |
| dds:EvaluateResource | EvaluateResource | none |
*All Resource
|
なし | なし |
| dds:DescribeHistoryTasksStat | DescribeHistoryTasksStat | list |
*Instance
|
なし | なし |
| dds:TagResources | TagResources | update |
*Instance
|
なし | なし |
| dds:CheckCloudResourceAuthorized | CheckCloudResourceAuthorized | get |
*dbinstance
|
なし | なし |
| dds:DescribeActiveOperationTask | DescribeActiveOperationTask | get |
*All Resource
|
なし | なし |
| dds:ModifyAuditPolicy | ModifyAuditPolicy | update |
*dbinstance
|
なし | なし |
| dds:DescribeRestoreDBInstanceList | DescribeRestoreDBInstanceList | get |
*Instance
|
なし | なし |
| dds:ModifyAccountDescription | ModifyAccountDescription | update |
*Instance
|
なし | なし |
| dds:DescribeDBInstanceEncryptionKey | DescribeDBInstanceEncryptionKey | get |
*Instance
|
なし | なし |
| dds:DescribeActiveOperationTasks | DescribeActiveOperationTasks | list |
*Instance
|
なし | なし |
| dds:ModifySrvNetworkAddress | ModifySrvNetworkAddress | update |
*Instance
|
なし | なし |
| dds:DescribeDBInstanceAttribute | DescribeDBInstanceAttribute | get |
*dbinstance
|
なし | なし |
| dds:ModifyGlobalSecurityIPGroup | ModifyGlobalSecurityIPGroup | update |
*All Resource
|
なし | なし |
| dds:DescribeRdsVpcs | DescribeRdsVpcs | get |
*All Resource
|
なし | なし |
| dds:SwitchDBInstanceHA | SwitchDBInstanceHA | none |
*Instance
|
なし | なし |
| dds:DescribeBackups | DescribeBackups | get |
*Instance
|
なし | なし |
| dds:DescribeAuditRecords | DescribeAuditRecords | get |
*dbinstance
|
なし | なし |
| dds:DescribeDBInstanceSpecInfo | DescribeDBInstanceSpecInfo | get |
*All Resource
|
なし | なし |
| dds:CreateGlobalSecurityIPGroup | CreateGlobalSecurityIPGroup | create |
*All Resource
|
なし | なし |
| dds:DestroyInstance | DestroyInstance | delete |
*Instance
|
なし | なし |
| dds:DescribeAvailableEngineVersion | DescribeAvailableEngineVersion | get |
*dbinstance
|
なし | なし |
| dds:DeleteNode | DeleteNode | delete |
*Instance
|
なし | なし |
| dds:AllocateNodePrivateNetworkAddress | AllocateNodePrivateNetworkAddress | update |
*Instance
|
なし | なし |
| dds:ModifyDBInstanceAttribute | ModifyDBInstanceAttribute | update |
*Instance
|
なし | なし |
| dds:DescribeRdsVSwitchs | DescribeRdsVSwitchs | get |
*All Resource
|
なし | なし |
| dds:DeleteBackup | DeleteBackup | delete |
*dbinstance
|
なし | なし |
| dds:DescribeActiveOperationTaskType | DescribeActiveOperationTaskType | get |
*All Resource
|
なし | なし |
| dds:DescribeParameterModificationHistory | DescribeParameterModificationHistory | get |
*dbinstance
|
なし | なし |
| dds:ModifyInstanceAutoRenewalAttribute | ModifyInstanceAutoRenewalAttribute | update |
*Instance
|
なし | なし |
| dds:UpgradeDBInstanceKernelVersion | UpgradeDBInstanceKernelVersion | update |
*Instance
|
なし | なし |
| dds:DescribeSecurityIps | DescribeSecurityIps | get |
*Instance
|
なし | なし |
| dds:UntagResources | UntagResources | update |
*Instance
|
なし | なし |
| dds:TransformToPrePaid | TransformToPrePaid | update |
*Instance
|
なし | なし |
| dds:DescribeReplicaSetRole | DescribeReplicaSetRole | get |
*Instance
|
なし | なし |
| dds:MigrateToOtherZone | MigrateToOtherZone | update |
*Instance
|
なし | なし |
| dds:DescribeParameters | DescribeParameters | get |
*dbinstance
|
なし | なし |
| dds:DescribeAvailabilityZones | DescribeAvailabilityZones | list |
*All Resource
|
なし | なし |
| dds:DescribeShardingNetworkAddress | DescribeShardingNetworkAddress | get |
*Instance
|
なし | なし |
| dds:CancelActiveOperationTasks | CancelActiveOperationTasks | update |
*All Resource
|
なし | なし |
| dds:ModifyDBInstanceNetExpireTime | ModifyDBInstanceNetExpireTime | update |
*Instance
|
なし | なし |
| dds:CreateNodeBatch | CreateNodeBatch | create |
*Instance
|
なし | なし |
| dds:ModifySecurityGroupConfiguration | ModifySecurityGroupConfiguration | update |
*dbinstance
|
なし | なし |
| dds:CheckRecoveryCondition | CheckRecoveryCondition | get |
*Instance
|
なし | なし |
| dds:DescribeRunningLogRecords | DescribeRunningLogRecords | get |
*dbinstance
|
なし | なし |
| dds:DescribeInstanceAutoRenewalAttribute | DescribeInstanceAutoRenewalAttribute | get |
Instance
|
なし | なし |
| dds:DescribeClusterBackups | DescribeClusterBackups | get |
*Instance
|
なし | なし |
| dds:ModifyDBInstanceMonitor | ModifyDBInstanceMonitor | update |
*Instance
|
なし | なし |
| dds:DescribeBackupDBs | DescribeBackupDBs | get |
*Instance
|
なし | なし |
| dds:ModifyInstanceVpcAuthMode | ModifyInstanceVpcAuthMode | update |
*Instance
|
なし | なし |
| dds:DescribeSecurityGroupConfiguration | DescribeSecurityGroupConfiguration | get |
*dbinstance
|
なし | なし |
| dds:DescribePrice | DescribePrice | get |
*All Resource
|
なし | なし |
| dds:UpgradeDBInstanceEngineVersion | UpgradeDBInstanceEngineVersion | update |
*Instance
|
なし | なし |
| dds:ModifySecurityIps | ModifySecurityIps | update |
*Instance
|
なし | なし |
| dds:ReleasePublicNetworkAddress | ReleasePublicNetworkAddress | update |
*Instance
|
なし | なし |
| dds:DescribeHistoryTasks | DescribeHistoryTasks | list |
*Instance
|
なし | なし |
| dds:ModifyGlobalSecurityIPGroupRelation | ModifyGlobalSecurityIPGroupRelation | update |
*Instance
|
なし | なし |
| dds:RenewDBInstance | RenewDBInstance | update |
*Instance
|
なし | なし |
| dds:ModifyAuditLogFilter | ModifyAuditLogFilter | update |
*dbinstance
|
なし | なし |
| dds:DescribeRoleTagStatus | DescribeRoleTagStatus | get |
*dbinstance
|
なし | なし |
| dds:ModifyDBInstanceConnectionString | ModifyDBInstanceConnectionString | update |
*Instance
|
なし | なし |
| dds:RestartDBInstance | RestartDBInstance | update |
*Instance
|
なし | なし |
| dds:ModifyDBInstanceTDE | ModifyDBInstanceTDE | update |
*Instance
|
なし | なし |
| dds:ModifyDBInstanceNetworkType | ModifyDBInstanceNetworkType | update |
*Instance
|
なし | なし |
| dds:DescribeTags | DescribeTags | get |
*All Resource
|
なし | なし |
| dds:ResetAccountPassword | ResetAccountPassword | update |
*Instance
|
なし | なし |
| dds:ModifyDBInstanceSSL | ModifyDBInstanceSSL | update |
*Instance
|
なし | なし |
| dds:DescribeBackupStorage | DescribeBackupStorage | get |
*Instance
|
なし | なし |
| dds:ModifyTaskInfo | ModifyTaskInfo | update |
*All Resource
|
なし | なし |
| dds:ModifyDBInstanceDescription | ModifyDBInstanceDescription | update |
*Instance
|
なし | なし |
| dds:DescribeDBInstancesOverview | DescribeDBInstancesOverview | list |
*Instance
|
なし | なし |
| dds:DescribeKmsKeys | DescribeKmsKeys | get |
*All Resource
|
なし | なし |
| dds:DeleteDBInstance | DeleteDBInstance | delete |
*Instance
|
なし | なし |
| dds:DescribeBinlogFiles | DescribeBinlogFiles | get |
*Instance
|
なし | なし |
| dds:DescribeAvailableResource | DescribeAvailableResource | get |
*All Resource
|
なし | なし |
| dds:ModifyBackupExpireTime | ModifyBackupExpireTime | create |
*dbinstance
|
なし | なし |
| dds:DescribeGlobalSecurityIPGroupRelation | DescribeGlobalSecurityIPGroupRelation | get |
*Instance
|
なし | なし |
| dds:ModifyBackupPolicy | ModifyBackupPolicy | update |
*Instance
|
なし | なし |
| dds:CreateNodeRoleTag | CreateNodeRoleTag | update |
*dbinstance
|
なし | なし |
| dds:DescribeAuditPolicy | DescribeAuditPolicy | get |
*dbinstance
|
なし | なし |
| dds:RestartNode | RestartNode | update |
*Instance
|
なし | なし |
| dds:DescribeDBInstances | DescribeDBInstances | get |
*Instance
*Instance
|
なし | なし |
| dds:TransformInstanceChargeType | TransformInstanceChargeType | update |
*Instance
|
なし | なし |
| dds:DescribeDBInstanceMonitor | DescribeDBInstanceMonitor | get |
*Instance
|
なし | なし |
| dds:DescribeDBInstanceSwitchLog | DescribeDBInstanceSwitchLog | list |
*Instance
|
なし | なし |
| dds:ModifyActiveOperationTasks | ModifyActiveOperationTasks | update |
*All Resource
|
なし | なし |
| dds:CreateBackup | CreateBackup | create |
*dbinstance
|
なし | なし |
| dds:ReleaseNodePrivateNetworkAddress | ReleaseNodePrivateNetworkAddress | update |
*Instance
|
なし | なし |
| dds:DescribeDBInstanceTDEInfo | DescribeDBInstanceTDEInfo | get |
*Instance
|
なし | なし |
| dds:CheckServiceLinkedRole | CheckServiceLinkedRole | get |
*All Resource
|
なし | なし |
| dds:DescribeSlowLogRecords | DescribeSlowLogRecords | get |
*Instance
|
なし | なし |
| dds:ModifyParameters | ModifyParameters | update |
*Instance
|
なし | なし |
| dds:CreateNode | CreateNode | create |
*dbinstance
|
なし | なし |
| dds:DescribeActiveOperationMaintenanceConfig | DescribeActiveOperationMaintenanceConfig | get |
*All Resource
|
なし | なし |
リソース (Resource)
下表に、 で定義されたリソースを示します。ポリシーステートメントのResource要素で指定することで、特定のアクションの適用対象を設定できます。各リソースは対応する ARN を持ち、一意的に識別されます。ARN はacs:{#ramcode}:{#regionId}:{#accountId}:{#resourceType}形式で、構成要素は以下のとおりです。
acs:Alibaba Cloud Service の頭文字で、Alibaba Cloud のパブリッククラウドを指します。{#ramcode}:RAM における具体的な Alibaba Cloud サービスの識別コード。{#regionId}:リージョン ID。アスタリスク (*) に設定した場合、リソースがすべてのリージョンに適用することを示します。{#accountId}:Alibaba Cloud アカウントの ID。アスタリスク (*) に設定した場合、リソースがすべての Alibaba Cloud アカウントに適用することを示します。{#resourceType}:具体的な Alibaba Cloud サービスによって定義されたリソースの識別子で、ファイルパスに似た階層構造をサポートしています。アスタリスク (*) に設定した場合、ステートメントがすべてのリソースに適用することを示します。
リソースタイプ |
ARN |
| DBInstance |
|
| dbinstance |
|
| Instance |
|
条件 (Condition)
下表に、 で定義されたプロダクトレベルの条件キーを示します。このほかに、Alibaba Cloud の共通条件キーを使用することもできます。これらのキーをポリシーステートメントのCondition要素として指定することで、きめ細かい権限付与ルールを定義できます。条件キーで、ポリシーのCondition_value要素で条件の値を指定します。
各条件キーには、文字列、数値、ブール値、IP アドレスといった特定のデータ型が定められています。データ型によって使用できる条件演算子が異なるため、キーのデータ型に基づいて適切な演算子を指定する必要があります。不適切な演算子を指定した場合、ポリシーステートメントは機能しません。データ型と条件演算子の対応関係については、「Condition_operator」をご参照ください。
条件キー |
説明 |
データ型 |
| acs:ResourceTag | タグベースの認証。 | STRING |
カスタム RAM ポリシーの作成方法
カスタムポリシーを作成し、RAM ユーザー、RAM ユーザーグループ、または RAM ロールに付与できます。詳細については、以下をご参照ください。