Sintaxe da política
Política do CAM:
{
"version":"2.0",
"statement":
[
{
"effect":"effect",
"action":["action"],
"resource":["resource"],
"condition": {"key":{"value"}}
}
]
}
a version (versão) é obrigatória. Atualmente, apenas a "2.0" é compatível.
a statement descreve os detalhes de uma ou mais permissões. Esse elemento contém uma permissão ou conjunto de permissões que é composto por outros elementos, como efeito, ação, recurso e condição. Uma política contém apenas uma instrução.
1.1 A action descreve as ações permitidas ou negadas. Uma ação pode ser uma API (descrita com o prefixo "name") ou um conjunto de funcionalidades (um conjunto de APIs específicas, descrito com o prefixo "permit"). Esse elemento é obrigatório.
1.2 O resource descreve os detalhes da autorização. Um recurso é descrito em um formato de seis partes. As definições detalhadas dos recursos variam de acordo com o produto. Para obter mais informações sobre como definir um recurso, consulte a documentação do devido produto. Esse elemento é obrigatório.
1.3 A condition descreve a condição para que a política entre em vigor. Uma condição é composta por operador, chave da ação e valor da ação. Um valor da condição pode conter informações, como hora e endereço IP. Alguns serviços permitem que você especifique valores adicionais em uma condição. Esse elemento é opcional.
1.4 O effect descreve se o resultado produzido pela instrução é "allowed" (permitido) ou "denied" (negado). Esse elemento é obrigatório.
Operações do CVM
Uma política do CAM permite que você execute operações de API em qualquer serviço do Tencent Cloud que seja compatível com o CAM. Para o CVM, use o prefixo name/cvm: com qualquer API, como name/cvm:RunInstances ou name/cvm:ResetInstancesPassword.
Para especificar várias ações em uma única instrução, separe-as com vírgulas, conforme mostrado abaixo:
"action":["name/cvm:action1","name/cvm:action2"]
Você também pode especificar várias ações usando um caractere curinga. Por exemplo, você pode especificar todas as APIs cujos nomes começam com "Describe", conforme mostrado abaixo:
"action":["name/cvm:Describe*"]
Para especificar todas as operações do CVM, use o caractere curinga "*" da seguinte forma:
Caminho de recursos do CVM
Cada política do CAM define seus próprios recursos.
O formato geral dos caminhos de recursos é o seguinte:
qcs:project_id:service_type:region:account:resource
project_id: informações do projeto, que são usadas apenas para fins de compatibilidade e podem ser deixadas em branco.
service_type : abreviatura de um produto, como CVM.
region: região do recurso, como bj.
account: a conta raiz do proprietário do recurso, como uin/164256472.
resource: informações detalhadas dos recursos de cada produto, como instance/instance_id1 or instance/*.
Por exemplo, você pode definir uma instância específica (i-15931881scv4) na instrução da seguinte maneira:
"resource":[ "qcs::cvm:bj:uin/164256472:instance/i-15931881scv4"]
Você também pode usar o caractere curinga "*" para definir todas as instâncias que pertencem a uma conta específica, conforme mostrado abaixo:
"resource":[ "qcs::redis:bj:uin/164256472:instance/*"]
Se você quiser especificar todos os recursos ou se alguma operação de API não for compatível com permissões no nível do recurso, você poderá usar o caractere curinga "*" em resource, conforme mostrado abaixo:
Para especificar vários recursos em uma instrução, separe-os com vírgulas. No exemplo a seguir, dois recursos foram especificados:
"resource":["resource1","resource2"]
A tabela a seguir descreve os recursos do CVM e os métodos de descrição dos recursos correspondentes.
Na tabela a seguir, os nomes com o prefixo $ são placeholders.
$project é o ID do projeto.
$region é a região do recurso.
$account é o ID da conta.
|
| qcs::cvm:$region:$account:instance/$instanceId |
| qcs::cvm:$region:$account:keypair/$keyId |
| qcs::vpc:$region:$account:vpc/$vpcId |
| qcs::vpc:$region:$account:subnet/$subnetId |
| qcs::cvm:$region:$account:image/* |
| qcs::cvm:$region:$account:volume/$diskid |
| qcs::cvm:$region:$account:sg/$sgId |
| qcs::cvm:$region:$account:eip/* |
Chaves de condição do CVM
Você pode usar as condições para especificar sob quais condições as políticas entram em vigor. Cada condição é composta por um ou mais pares de chaves. Elas não diferenciam maiúsculas de minúsculas.
Se você especificar várias condições ou várias chaves em uma condição, elas serão conectadas com o operador lógico "AND" (E).
Se você especificar uma chave com vários valores em uma condição, eles serão conectados com o operador lógico "OR" (OU).
A tabela a seguir descreve as chaves de condição do CVM para serviços específicos.
|
cvm:instance_type
|
String
| cvm:instance_type=instance_type instance_type é o modelo da instância do CVM, como S1.SMALL1.
|
cvm:image_type
|
String
| cvm:image_type=image_type image_typeé o tipo de imagem, como IMAGE_PUBLIC.
|
vpc:region
|
String
| vpc:region=region region é a região da instância do CVM, como ap-guangzhou.
|
cvm:disk_size
|
Integer
| cvm:disk_size=disk_size Disk_size é o tamanho do disco, como 500
|
cvm:disk_type
|
String
| cvm_disk_type=disk_type Disk_type é o tipo de disco, como CLOUD_BASIC.
|
cvm:region
|
String
| cvm:region=region region é a região da instância do CVM, como ap-guangzhou.
|