Como posso usar políticas do sistema para controlar o acesso ao meu sistema de arquivos EFS?

5 minuto de leitura
0

Quero acessar meu sistema de arquivos do Amazon Elastic File System (Amazon EFS) em todas as contas da AWS para poder compartilhar arquivos. Quero usar a autorização do AWS Identity and Access Management (IAM) para clientes do Network File System (NFS) e pontos de acesso do EFS.

Breve descrição

Para acessar seu sistema de arquivos do Amazon EFS, use a autorização do IAM para clientes e pontos de acesso NFS. Para montar o sistema de arquivos EFS, use o auxiliar de montagem do Amazon EFS. Por padrão, o auxiliar de montagem usa o DNS para resolver o endereço IP do seu destino de montagem. Se você montar a partir de outra conta ou da Amazon Virtual Private Cloud (Amazon VPC), será necessário resolver manualmente o endereço IP de destino da montagem do Amazon EFS.

Pré-requisitos:

  • Conecte as VPCs do seu cliente NFS e do seu sistema de arquivos EFS com uma conexão de emparelhamento da VPC ou um Gateway de trânsito de VPC. Essa conexão permite que instâncias do Amazon Elastic Compute Cloud (Amazon EC2) da mesma conta ou de contas diferentes acessem sistemas de arquivos EFS em uma VPC diferente.
  • Dê ao seu console de perfis do IAM ou acesso de leitura aos recursos do cliente Amazon EFS e NFS.
  • Instale o cliente do Amazon EFS e o pacote botocore no cliente do NFS.
    Observação: em um cenário entre contas, como você não pode executar o comando NFS normal, o pacote botocore e o cliente do Amazon EFS são necessários.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Conceda permissões para acessar e montar o sistema de arquivos do EFS entre contas

Para conceder permissões para acessar e montar o sistema de arquivos do EFS entre contas, adicione uma declaração à sua política do IAM ou use a AWS CLI para assumir o perfil.

Adicionar uma declaração de política

Adicione a seguinte declaração de política na política do IAM:

{            "Sid": "EfsPermissions",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientRootAccess"
            ],
            "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id"
        }

Observação: a instrução de exemplo anterior permite que o perfil do IAM tenha acesso de montagem, gravação e raiz no sistema de arquivos do EFS. Se o seu cliente do NFS for uma instância do EC2, anexe o perfil do IAM à instância.

Use a AWS CLI

Para usar a AWS CLI para assumir a função, consulte Como faço para assumir um perfil do IAM usando a AWS CLI?

Como a AWS CLI não pode resolver o DNS de um sistema de arquivos do EFS que está em outra VPC, você deve determinar o endereço IP de destino de montagem correto para seu cliente. Em seguida, configure o cliente. Para montar o sistema de arquivos do EFS, use o endereço IP de destino de montagem que esteja na mesma zona de disponibilidade do seu cliente do NFS. Os mapeamentos de nomes das zonas de disponibilidade podem diferir entre contas. Ao montar um sistema de arquivos do EFS em outra conta, o cliente do NFS e o destino de montagem devem estar na mesma Zona de disponibilidade.

Determine a Zona de disponibilidade da sua instância do EC2

Para determinar a Zona de disponibilidade da sua instância do EC2, use o console do Amazon EC2 ou a AWS CLI.

Usar o console do Amazon EC2

Conclua as etapas a seguir:

  1. Abra o console do Amazon EC2.
  2. Escolha Instâncias.
  3. Escolha ID da instância do EC2 e depois Redes.
  4. Em Detalhes de rede, encontre a Zona de disponibilidade.

Use a AWS CLI

Execute o comando describe-availability-zones da entidade do IAM que tenha permissões de leitura suficientes para o Amazon EC2:

$ aws ec2 describe-availability-zones --zone-name `curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone`{
    "AvailabilityZones": [
        {
            "State": "available",
            "ZoneName": "us-east-2b",
            "Messages": [],
            "ZoneId": "use2-az2",
            "RegionName": "us-east-2"
        }
    ]
}

Determine o endereço IP de destino de montagem para a Zona de disponibilidade local

Para determinar o endereço IP de destino de montagem para a Zona de disponibilidade local, use o console do Amazon EFS ou a AWS CLI.

Usar o console do Amazon EFS

Conclua as etapas a seguir:

  1. Abra o console do Amazon EFS.
  2. Escolha Sistemas de arquivos.
  3. Escolha EFS-File-System-ID.
  4. Em Rede, anote o endereço IP da sua Zona de disponibilidade.

Use a AWS CLI

Conclua as etapas a seguir:

  1. Execute o comando describe-mount-targets a partir da entidade do IAM que tem permissões de leitura suficientes para o Amazon EC2:

    $ aws efs describe-mount-targets --file-system-id fs-cee4feb7{
        "MountTargets": [
            {
                "MountTargetId": "fsmt-a9c3a1d0",
                "AvailabilityZoneId": "use2-az2",
                "NetworkInterfaceId": "eni-048c09a306023eeec",
                "AvailabilityZoneName": "us-east-2b",
                "FileSystemId": "fs-cee4feb7",
                "LifeCycleState": "available",
                "SubnetId": "subnet-06eb0da37ee82a64f",
                "OwnerId": "958322738406",
                "IpAddress": "10.0.2.153"
            },
    ...
            {
                "MountTargetId": "fsmt-b7c3a1ce",
                "AvailabilityZoneId": "use2-az3",
                "NetworkInterfaceId": "eni-0edb579d21ed39261",
                "AvailabilityZoneName": "us-east-2c",
                "FileSystemId": "fs-cee4feb7",
                "LifeCycleState": "available",
                "SubnetId": "subnet-0ee85556822c441af",
                "OwnerId": "958322738406",
                "IpAddress": "10.0.3.107"
            }
        ]
    }
  2. Na saída anterior, observe o endereço IP que corresponde ao destino de montagem na Zona de disponibilidade da instância.

Adicionar a entrada hosts ao arquivo /etc/hosts e monte o sistema de arquivos do EFS

Conclua as etapas a seguir:

  1. Execute o comando a seguir para adicionar a entrada hosts ao arquivo /etc/hosts no cliente do NFS:
    $ echo "10.0.2.153 fs-cee4feb7.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
    Observação: no comando anterior, o formato do nome DNS é mount-target-IP-Address file-system-ID.efs.region.amazonaws.com. Substitua o endereço IP de exemplo pelo endereço IP do destino de montagem.
  2. Use the mount helper to mount the EFS file system.

Se tiver problemas ao montar o sistema de arquivos, consulte Solução de problemas de montagem.

Informações relacionadas

Criar políticas de sistema de arquivos

AWS OFICIAL
AWS OFICIALAtualizada há 7 meses