Crie políticas personalizadas do RAM para controle de acesso granular ao ECS quando as políticas do sistema não atenderem aos seus requisitos.
Contexto
Para criar uma política personalizada, consulte Create a custom policy.
Antes de criar uma política personalizada, familiarize-se com os Basic elements of a permission policy e a Policy structure and syntax.
Para entender como várias políticas entram em vigor, consulte a Policy evaluation logic.
Exemplos de políticas personalizadas
Criar instâncias ECS no modelo pagamento conforme o uso
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeImages",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups",
"ecs:DescribeKeyPairs",
"ecs:DescribeTags",
"ecs:RunInstances"
],
"Resource": "*"
}
],
"Version": "1"
}
Criar instâncias ECS por assinatura
Para consultar e pagar pedidos de assinatura, chame operações de API relacionadas ao bss. A política do sistema correspondente é AliyunBSSOrderAccess.
Se você definir autoPay como true ao chamar RunInstances para criar instâncias ECS por assinatura, as permissões para operações de API relacionadas ao bss não serão necessárias.
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeImages",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups",
"ecs:DescribeKeyPairs",
"ecs:DescribeTags",
"ecs:RunInstances",
"bss:DescribeOrderList",
"bss:DescribeOrderDetail",
"bss:PayOrder",
"bss:CancelOrder"
],
"Resource": "*"
}
],
"Version": "1"
}
Reiniciar instâncias ECS com MFA
A política a seguir permite que o usuário do RAM autorizado reinicie instâncias ECS. O reinício só ocorre se o MFA estiver ativado para o usuário do RAM e ele utilizar o MFA para fazer login. Nesse caso, a chave de condição acs:MFAPresent no elemento Condition é definida como true.
{
"Statement": [
{
"Action": "ecs:RebootInstance",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": "true"
}
}
}
],
"Version": "1"
}
Gerenciar uma instância ECS específica
A política abaixo indica que o usuário do RAM autorizado pode visualizar todas as instâncias ECS em uma conta Alibaba Cloud, mas só pode gerenciar a instância ECS i-001.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "acs:ecs:*:*:instance/i-001"
},
{
"Action": "ecs:Describe*",
"Effect": "Allow",
"Resource": "*"
}
],
"Version": "1"
}
Conectar-se a uma instância ECS específica com o Workbench
O usuário do RAM autorizado pode visualizar todas as instâncias ECS e recursos em uma conta Alibaba Cloud, mas só pode se conectar à instância i-001 usando o Workbench.
{
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ecs-workbench:LoginInstance",
"Resource": "acs:ecs-workbench:*:*:workbench/i-001"
}
],
"Version": "1"
}
Negar conexões VNC para instâncias ECS
Esta política nega conexões VNC para todas as instâncias ECS:
{
"Statement": [
{
"Effect": "Deny",
"Action": "ecs:DescribeInstanceVncUrl",
"Resource": "*"
}
],
"Version": "1"
}
Visualizar instâncias ECS em uma região específica
A política a seguir permite que o usuário do RAM autorizado visualize instâncias ECS na região China (Qingdao), mas impede a visualização de discos ou snapshots nessa região.
{
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:Describe*",
"Resource": "acs:ecs:cn-qingdao:*:instance/*"
}
],
"Version": "1"
}
Gerenciar grupos de segurança
A política abaixo permite que um usuário do RAM gerencie grupos de segurança do ECS dentro de uma conta Alibaba Cloud:
{
"Version": "1",
"Statement": [
{
"Action": "ecs:*SecurityGroup*",
"Resource": "*",
"Effect": "Allow"
}
]
}
Criar funções RAM de instância
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:CreateInstance",
"ecs:AttachInstanceRamRole",
"ecs:DetachInstanceRAMRole"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "*"
}
]
}
Consultar instâncias ECS e dispositivos de armazenamento em bloco
{
"Statement": [
{
"Effect": "Allow",
"Action": ["ecs:DescribeInstances", "ecs:DescribeDisks"],
"Resource": "*"
}
],
"Version": "1"
}
Adquirir planos de economia
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "bssapi:CreateSavingsPlansInstance",
"Resource": "*"
}
]
}
Negar criação de VPC padrão durante a criação da instância
Por padrão, usuários do RAM com AliyunECSFullAccess podem criar, visualizar e reiniciar instâncias ECS. Se um usuário do RAM criar uma instância em uma região sem Virtual Private Cloud (VPC), uma VPC padrão será criada automaticamente. Utilize esta política para negar a criação da VPC padrão, mantendo as demais permissões.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringEquals": {
"vpc:CreateDefaultVpc": ["true"]
}
}
}
]
}
Usar listas de prefixos
{
"Statement": [
{
"Action": [
"ecs:CreatePrefixList",
"ecs:ModifyPrefixList",
"ecs:DescribePrefixLists",
"ecs:DescribePrefixListAssociations",
"ecs:DescribePrefixListAttributes",
"ecs:DeletePrefixList"
],
"Resource": "*",
"Effect": "Allow"
}
],
"Version": "1"
}
Usar o Cloud Assistant
Consulte Cloud Assistant Agent-specific sample custom policies.
Ler buckets do OSS
{
"Version": "1",
"Statement": [
{
"Action": ["oss:GetObject", "oss:GetBucketLocation", "oss:GetBucketInfo"],
"Resource": "*",
"Effect": "Allow"
}
]
}
Ler e gravar em buckets do OSS
{
"Version": "1",
"Statement": [
{
"Action": [
"oss:GetObject",
"oss:GetBucketLocation",
"oss:GetBucketInfo",
"oss:PutObject",
"oss:DeleteObject",
"oss:AbortMultipartUpload",
"oss:ListMultipartUploads",
"oss:ListParts"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Acessar recursos do ECS apenas via HTTPS
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:SecureTransport": "true"
}
}
}
],
"Version": "1"
}
Criar apenas discos criptografados
Para empresas com requisitos rigorosos de conformidade de segurança, anexe esta política aos usuários do RAM para impor a criptografia de discos em todas as instâncias ECS.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:IsDiskEncrypted": "*false*"
}
},
"Effect": "Deny"
},
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ecs:IsSystemDiskEncrypted": "false"
}
},
"Effect": "Deny"
},
{
"Action": "ecs:CreateDisk",
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:IsDiskEncrypted": "*false*"
}
},
"Effect": "Deny"
}
]
}
Criar apenas discos criptografados com CMK
Esta política restringe a criação de discos exclusivamente a discos criptografados com CMK. Após anexar esta política a um usuário do RAM, o usuário deverá selecionar uma chave mestra do cliente (CMK) para criptografar discos ao criar instâncias ou discos de dados.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:IsDiskByokEncrypted": "*false*"
}
},
"Effect": "Deny"
},
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ecs:IsSystemDiskByokEncrypted": "false"
}
},
"Effect": "Deny"
},
{
"Action": "ecs:CreateDisk",
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:IsDiskByokEncrypted": "*false*"
}
},
"Effect": "Deny"
}
]
}
Criar instâncias ECS apenas com imagens personalizadas
Esta política permite que um usuário do RAM crie instâncias ECS somente utilizando imagens personalizadas.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Effect": "Deny",
"Resource": "acs:ecs:<Region ID>:*:instance/*",
"Condition": {
"StringNotEquals": {
"ecs:ImageSource": "Custom"
}
}
}
]
}
Negar login root em instâncias ECS
Esta política nega o login root durante a criação de instâncias, substituição de discos do sistema, anexação de discos do sistema ou redefinição online de senhas.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:CreateOrder",
"ecs:ReplaceSystemDisk",
"ecs:AttachDisk",
"ecs:InvokeCommand"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:LoginAsNonRoot": [
"false"
]
}
},
"Effect": "Deny"
}
]
}
Negar login baseado em senha para instâncias ECS
Esta política bloqueia o login por senha ao criar instâncias, substituir discos do sistema, anexar discos do sistema ou redefinir senhas. Após a aplicação desta política, o usuário do RAM poderá usar apenas pares de chaves ou o Session Manager para fazer login nas instâncias ECS.
Defina ecs:ImagePlatform no elemento Condition para limitar o escopo. Por exemplo, definir ecs:ImagePlatform como linux permite o login por senha em instâncias Windows, mas o nega para instâncias Linux.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:CreateOrder",
"ecs:ReplaceSystemDisk"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:PasswordCustomized": [
"true"
]
},
"StringEquals": {
"ecs:ImagePlatform": "linux"
}
},
"Effect": "Deny"
},
{
"Action": [
"ecs:ModifyInstanceAttribute",
"ecs:InvokeCommand",
"ecs:AttachDisk"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:PasswordCustomized": [
"true"
]
}
},
"Effect": "Deny"
}
]
}
Negar login com senha predefinida na imagem
Esta política impede o login com senhas predefinidas na imagem durante a criação de instâncias ou a substituição de discos do sistema.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:CreateOrder",
"ecs:ReplaceSystemDisk"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:PasswordInherit": [
"true"
]
}
},
"Effect": "Deny"
}
]
}
Negar regras de grupo de segurança com 0.0.0.0/0
Uma regra de entrada com 0.0.0.0/0 permite que todos os endereços IP externos acessem instâncias ECS no grupo de segurança, o que aumenta os riscos de segurança. Use esta política para negar a criação de regras com 0.0.0.0/0 e impedir o uso do grupo de segurança padrão na criação de instâncias.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ecs:AuthorizeSecurityGroup",
"ecs:ConfigureSecurityGroupPermissions",
"ecs:ModifySecurityGroupRule"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringLike": {
"ecs:SecurityGroupIpProtocols": [
"TCP"
]
},
"ForAnyValue:CIDRInRange": {
"ecs:SecurityGroupSourceCidrIps": [
"0.0.0.0/0"
]
}
}
},
{
"Effect": "Deny",
"Action": [
"ecs:CreateInstance",
"ecs:RunInstances"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:NotSpecifySecureGroupId": [
"true"
]
}
}
}
]
}
Impor modo de reforço de segurança para metadados da instância
Esta política exige que os usuários do RAM acessem os metadados da instância only in security hardening mode ao chamar RunInstances ou CreateInstance para criar instâncias, ou ModifyInstanceMetadataOptions para modificar metadados de instâncias existentes.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:ModifyInstanceMetadataOptions"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ecs:SecurityHardeningMode": ["false"]
}
}
}
]
}