Usando condições IAM políticas para controle de acesso refinado - Amazon Route 53

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando condições IAM políticas para controle de acesso refinado

No Route 53, você pode especificar condições ao conceder permissões usando uma IAM política (consulteControle de acesso). Por exemplo, é possível:

  • Conceda permissões para liberar o acesso a um único conjunto de registros de recursos.

  • Conceda permissões para permitir que os usuários acessem todos os conjuntos de registros de recursos de um tipo de DNS registro específico em uma zona hospedada, por exemplo, AAAA registros A e.

  • Conceda permissões para liberar o acesso aos usuários a um conjunto de registros de recursos em que seu nome contém uma string específica.

  • Conceda permissões para permitir que os usuários realizem somente um subconjunto das CREATE | UPSERT | DELETE ações no console do Route 53 ou ao usar o. ChangeResourceRecordSetsAPI

  • Conceda permissões para permitir que os usuários associem ou dissociem zonas hospedadas privadas de uma determinada. VPC

  • Conceda permissões para permitir que os usuários listem zonas hospedadas associadas a uma determinada zonaVPC.

  • Conceda permissões para permitir que os usuários tenham acesso para criar uma nova zona hospedada privada e associá-la a uma determinadaVPC.

  • Conceda permissões para permitir que os usuários criem ou excluam uma autorização de VPC associação.

Você também pode criar permissões que combinam qualquer uma das permissões granulares.

Normalizando os valores-chave da condição do Route 53

Os valores inseridos para as condições da política devem ser formatados ou normalizados da seguinte forma:

Para route53:ChangeResourceRecordSetsNormalizedRecordNames:

  • Todas as letras devem estar em minúscula.

  • O DNS nome deve estar sem o ponto final.

  • Caracteres que não sejam de A a Z, 0 a 9, - (hífen), _ (underline) e . (ponto final, como delimitador entre rótulos) deve usar códigos de escape no formato \código octal de três dígitos. Por exemplo, \052 é o código octal para o caractere *.

Para route53:ChangeResourceRecordSetsActions, o valor pode ser qualquer um dos seguintes e deve estar em maiúsculas:

  • CREATE

  • UPSERT

  • DELETE

para route53:ChangeResourceRecordSetsRecordTypes:

  • O valor deve estar em maiúsculas e pode ser qualquer um dos tipos de DNS registro compatíveis com o Route 53. Para obter mais informações, consulte Tipos de registro de DNS com suporte.

Para route53:VPCs:

  • O valor deve estar no formato deVPCId=<vpc-id>,VPCRegion=<region>.

  • O valor de <vpc-id> e <region> deve estar em letras minúsculas, como e. VPCId=vpc-123abc VPCRegion=us-east-1

  • As chaves e valores do contexto diferenciam maiúsculas de minúsculas.

Importante

Para que suas permissões liberem ou restrinjam as ações pretendidas, você deve seguir essas convenções. Somente VPCRegion elementos VPCId e elementos são aceitos por essa chave de condição; quaisquer outros AWS recursos, como Conta da AWS, não são suportados.

Você pode usar o Access Analyzer ou o Policy Simulator no Guia do IAM usuário para validar se sua política concede ou restringe as permissões conforme o esperado. Você também pode validar as permissões aplicando uma IAM política a um usuário ou função de teste para realizar operações do Route 53.

Especificar condições: usar chaves de condição

AWS fornece um conjunto de chaves de condição predefinidas (chaves AWS de condição abrangentes) para todos os AWS serviços que oferecem suporte ao controle IAM de acesso. Por exemplo, você pode usar a condição de chave aws:SourceIp para verificar o endereço IP do solicitante antes de permitir que uma ação seja executada. Para obter mais informações e uma lista das chaves AWS gerais, consulte Chaves disponíveis para condições no Guia do IAM usuário.

nota

O Route 53 não é compatível com chaves de condição baseadas em tag.

A tabela a seguir mostra as chaves de condição específicas do serviço Route 53 que se aplicam ao Route 53.

Chave de condição do Route 53 APIoperações Tipo de valor Descrição
route53:ChangeResourceRecordSetsNormalizedRecordNames

ChangeResourceRecordSets

Vários valores

Representa uma lista de nomes de DNS registros na solicitação deChangeResourceRecordSets. Para obter o comportamento esperado, DNS os nomes na IAM política devem ser normalizados da seguinte forma:

  • Todas as letras devem estar em minúscula.

  • O DNS nome deve estar sem o ponto final.

  • Caracteres que não sejam de A a Z, 0 a 9, - (hífen), _ (underline) e . (ponto final, como delimitador entre rótulos) deve usar códigos de escape no formato \código octal de três dígitos.

route53:ChangeResourceRecordSetsRecordTypes

ChangeResourceRecordSets

Vários valores

Representa uma lista de tipos de DNS registro na solicitação deChangeResourceRecordSets.

ChangeResourceRecordSetsRecordTypespode ser qualquer um dos tipos de DNS registro compatíveis com o Route 53. Para obter mais informações, consulte Tipos de registro de DNS com suporte. Todos devem ser inseridos em maiúsculas na política.

route53:ChangeResourceRecordSetsActions

ChangeResourceRecordSets

Vários valores

Representa uma lista de ações na solicitação de ChangeResourceRecordSets.

ChangeResourceRecordSetsActions pode ser qualquer um dos seguintes valores (deve estar em maiúsculas):

  • CREATE

  • UPSERT

  • DELETE

route53:VPCs

A ssociateVPCWith HostedZone

D isassociateVPCFrom HostedZone

ListHostedZonesByVPC

CreateHostedZone

reateVPCAssociationAutorização C

D eleteVPCAssociation Autorização

Vários valores

Representa uma lista de VPCs na solicitação de AssociateVPCWithHostedZoneDisassociateVPCFromHostedZone,ListHostedZonesByVPC,CreateHostedZone,CreateVPCAssociationAuthorization, eDeleteVPCAssociationAuthorization, no formato de "VPCId=<vpc-id>, VPCRegion = <region>

Políticas de exemplo: usar condições para acesso refinado

Cada um dos exemplos nessa seção define a cláusula Effect (Efeito) como Allow (Permitir) e especifica apenas as ações, os recursos e os parâmetros permitidos. O acesso é permitido somente ao que está explicitamente listado na IAM política.

Em alguns casos, é possível reescrever essas políticas para que elas sejam baseadas em negação (ou seja, definindo a cláusula Effect (Efeito) como Deny (Negar) e invertendo toda a lógica na política). No entanto, recomendamos que você evite usar políticas baseadas em negação, pois elas são difíceis de escrever corretamente, em comparação às políticas baseadas em permissão. Pela necessidade de normalização do texto, isso é especialmente verdadeiro para o Route 53.

Conceda permissões que limitam o acesso a DNS registros com nomes específicos

A política de permissões a seguir concede permissões para as ações ChangeResourceRecordSets na zona hospedada Z12345 para exemplo.com e marketing.exemplo.com. Ele usa a chave de condição route53:ChangeResourceRecordSetsNormalizedRecordNames para limitar as ações do usuário somente nos registros que correspondem aos nomes especificados.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com", "marketing.example.com"] } } } ] }

ForAllValues:StringEqualsé um operador de IAM condição que se aplica a chaves de vários valores. A condição na política acima permitirá a operação somente quando todas as alterações ChangeResourceRecordSets tiverem o DNS nome de exemplo.com. Para obter mais informações, consulte IAMoperadores de IAMcondição e condição com várias chaves ou valores no Guia IAM do usuário.

Para implementar a permissão que corresponde a nomes com determinados sufixos, você pode usar o IAM caractere curinga (*) na política com o operador StringLike de condição ou. StringNotLike A política a seguir permitirá a operação quando todas as alterações na ChangeResourceRecordSets operação tiverem DNS nomes que terminem com “-beta.example.com”.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringLike":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["*-beta.example.com"] } } } ] }
nota

O IAM curinga não é o mesmo que o curinga do nome de domínio. Veja o exemplo a seguir para saber como usar o coringa com um nome de domínio.

Conceda permissões que limitam o acesso aos DNS registros que correspondem a um nome de domínio contendo um curinga

A política de permissões a seguir concede permissões que possibilitam ações ChangeResourceRecordSets na zona hospedada Z12345 para example.com. Ele usa a chave de condição route53:ChangeResourceRecordSetsNormalizedRecordNames para limitar as ações do usuário somente aos registros que correspondam a *.example.com.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["\\052.example.com"] } } } ] }

\052 é o código octal para o caractere * no DNS nome, e \ in \052 é escapado para seguir \\ JSON a sintaxe.

Conceda permissões que limitam o acesso a DNS registros específicos

A política de permissões a seguir concede permissões que possibilitam ações ChangeResourceRecordSets na zona hospedada Z12345 para example.com. Ele usa a combinação de três teclas de condição para limitar as ações do usuário e permitir somente a criação ou edição de DNS registros com determinado DNS nome e tipo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com"], "route53:ChangeResourceRecordSetsRecordTypes": ["MX"], "route53:ChangeResourceRecordSetsActions": ["CREATE", "UPSERT"] } } } ] }
Conceda permissões que limitam o acesso à criação e edição somente dos tipos de DNS registros especificados

A política de permissões a seguir concede permissões que possibilitam ações ChangeResourceRecordSets na zona hospedada Z12345 para example.com. Ele usa a chave de route53:ChangeResourceRecordSetsRecordTypes condição para limitar as ações do usuário somente nos registros que correspondem aos tipos especificados (A eAAAA).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsRecordTypes": ["A", "AAAA"] } } } ] }
Conceda permissões que especificam em VPC que o IAM diretor pode operar

A política de permissões a seguir concede permissões que permitem AssociateVPCWithHostedZone DisassociateVPCFromHostedZoneListHostedZonesByVPC,,CreateHostedZone,CreateVPCAssociationAuthorization, e DeleteVPCAssociationAuthorization ações no VPC especificado pelo vpc-id.

Importante

O valor da condição deve estar no formato deVPCId=<vpc-id>,VPCRegion=<region>. Se você especificar a VPC ARN no valor da condição, a chave de condição não entrará em vigor.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "route53:*" ], "Resource": [ "*" ], "Condition": { "ForAllValues:StringLike": { "route53:VPCs": [ "VPCId=<vpc-id>,VPCRegion=<region>" ] } } }, { "Sid": "Statement2", "Effect": "Allow", "Action": "ec2:DescribeVpcs", "Resource": "*" } ] }