Configure uma política de instância para proteger uma instância do Tablestore restringindo o acesso com base em condições como endereço IP de origem, rede de origem e versão TLS.
Como funciona
Uma política de instância é uma política de autorização baseada em recursos vinculada a uma instância. Ela define quais entidades podem executar quais ações em quais recursos e sob quais condições. Para a sintaxe e os elementos da política, consulte Sintaxe e elementos da política de autorização.
Quando o Tablestore avalia as políticas vinculadas, a negação explícita tem precedência: qualquer regra Deny correspondente bloqueia a solicitação, independentemente de quaisquer regras Allow.
Métodos de configuração
Console
Faça logon no Tablestore console e alterne a região na parte superior da página.
Clique no nome da instância de destino ou em Instance Management e clique na aba Security Policy.
-
Clique em Authorize. Na aba Visualized Policy, defina Effect como Allow ou Deny e configure a Condition da política.
nullPara visualizar a política como um script JSON, alterne para a aba Script-based Policy.
Parâmetro
Descrição
Condition Key
A chave de condição. Valores válidos:
-
acs:SourceVpc: restringe o acesso do cliente pela VPC de origem. -
ots:TLSVersion: restringe o acesso do cliente pela versão TLS usada pela origem. -
acs:SourceIp: restringe o acesso do cliente pelo endereço IP de origem. -
ots:AccessId: restringe o acesso do cliente pelo AccessKey ID (AK) do usuário solicitante. -
acs:SecureTransport: restringe o acesso do cliente com base no uso de HTTPS na solicitação.
nullA chave de condição
acs:SourceIpcorresponde apenas ao endereço IP de origem da solicitação, sem distinguir entre tráfego público e interno da VPC. Se você usar apenasacs:SourceIppara restringir o acesso, solicitações de outras VPCs que usem o mesmo intervalo de IP também serão permitidas, o que cria um risco de acesso não autorizado. Sempre combineacs:SourceIpcomacs:SourceVpcpara tornar a origem da rede explícita.Operator
O operador aplicado à chave de condição. Para obter mais informações, consulte Operadores de condição.
Condition Value
O valor da Condition Key selecionada.
-
acs:SourceVpc: insira um ID de VPC válido. Para permitir apenas acesso pela internet, insiravpc-*com o operadorStringNotLike.Para inserir vários valores, coloque um ID de VPC por linha.
-
ots:TLSVersion: selecione uma versão TLS. Os valores válidos são TLSv1, TLSv1.1, TLSv1.2 e TLSv1.3. -
acs:SourceIp: insira um endereço IP ou um bloco CIDR.Para inserir vários valores, coloque um endereço IP ou bloco CIDR por linha.
-
ots:AccessId: insira o AccessKey ID (AK) do usuário.Para inserir vários valores, coloque um AccessKey ID por linha.
-
acs:SecureTransport: defina o valor comotruepara permitir apenas acesso HTTPS, oufalsepara permitir apenas acesso HTTP.
-
Clique em Yes.
Após a política ser vinculada, visualize a política completa na aba Script-based Policy.
API
Use as operações UpdateInstancePolicy, DeleteInstancePolicy e CheckInstancePolicy para gerenciar a política de instância.
Cenários comuns e exemplos de política
Os exemplos a seguir mostram as combinações de condições e as políticas JSON para cenários típicos de controle de acesso.
Permitir acesso apenas de endereços IP públicos específicos
Restrinja o acesso a endereços IP públicos específicos combinando acs:SourceIp com acs:SourceVpc para que a origem da rede seja inequívoca. Para corresponder ao tráfego da internet pública, defina acs:SourceVpc como vpc-* com o operador StringNotLike.
Defina Effect como Allow e adicione as duas condições a seguir:
|
Condition Key |
Operator |
Condition Value |
|
|
|
O endereço IP público ou bloco CIDR com permissão para acessar a instância. |
|
|
|
|
O exemplo a seguir permite que apenas o endereço IP público 203.0.113.5 acesse a instância myinstance.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"IpAddress": {
"acs:SourceIp": ["203.0.113.5"]
},
"StringNotLike": {
"acs:SourceVpc": ["vpc-*"]
}
}
}
]
}
Permitir acesso apenas de uma VPC específica
Use essa configuração para limitar a instância ao tráfego originado de uma VPC específica.
Defina Effect como Allow e adicione a seguinte condição:
|
Condition Key |
Operator |
Condition Value |
|
|
|
O ID da VPC com permissão para acessar a instância. |
O exemplo a seguir permite o acesso à instância myinstance apenas a partir da VPC cujo ID é vpc-bp1xxxxxxxxxxxxxxxx.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
}
]
}
Permitir acesso apenas de um intervalo de IP específico em uma VPC específica
Combine condições de VPC e intervalo de IP para permitir que apenas o bloco CIDR escolhido dentro da VPC escolhida acesse a instância.
Defina Effect como Allow e adicione as duas condições a seguir:
|
Condition Key |
Operator |
Condition Value |
|
|
|
O bloco CIDR com permissão para acessar a instância. |
|
|
|
O ID da VPC, que restringe a origem da solicitação a essa VPC. |
O exemplo a seguir permite o acesso à instância myinstance apenas a partir do bloco CIDR 192.168.0.0/16 dentro da VPC cujo ID é vpc-bp1xxxxxxxxxxxxxxxx.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"IpAddress": {
"acs:SourceIp": ["192.168.0.0/16"]
},
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
}
]
}
Restringir a versão TLS para acesso à instância
Exija que os clientes negociem uma das versões TLS listadas antes de acessar a instância.
Defina Effect como Allow e adicione a seguinte condição:
|
Condition Key |
Operator |
Condition Value |
|
|
|
|
O exemplo a seguir permite que apenas solicitações que negociem TLSv1.2 ou TLSv1.3 acessem a instância myinstance.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"ots:TLSVersion": ["TLSv1.2", "TLSv1.3"]
}
}
}
]
}
Limitações
O tamanho total de todas as entradas de condição adicionadas a uma única instância não pode exceder 4 KB.