Pré-requisitos referentes ao S3 Files
Para começar a usar o S3 Files, é necessário cumprir os pré-requisitos a seguir.
Configuração da conta e computação da AWS
Você tem uma conta da AWS.
Você tem um recurso de computação e um bucket de uso geral do S3 na região da AWS desejada em que pretende criar seu sistema de arquivos. Para ter mais informações, consulte Criar um bucket de uso geral.
Seu bucket do S3 tem o versionamento habilitado. O S3 Files exige o Versionamento do S3 para sincronizar as alterações entre o sistema de arquivos e o bucket do S3. Para ter mais informações, consulte Habilitar o versionamento em buckets.
O bucket do S3 deve usar um dos seguintes tipos de criptografia: criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) ou criptografia do lado do servidor com chaves gerenciadas pelo AWS Key Management Service (AWS KMS) (SSE-KMS).
Cliente do S3 Files
Para usar o S3 Files com o Amazon EC2, é necessário instalar o cliente amazon-efs-utils, uma coleção compartilhada de ferramentas de código aberto para o Amazon EFS e o Amazon S3 Files. Para trabalhar com o S3 Files, você precisa do amazon-efs-utils versão 3.0.0 ou posterior. O cliente inclui um programa auxiliar de montagem que simplifica a montagem dos sistemas de arquivos do S3 e permite que as métricas do Amazon CloudWatch monitorem o status de montagem do sistema de arquivos.
Etapa 1: instalar o cliente
Acesse o terminal para sua instância do Amazon EC2 por meio do Secure Shell (SSH) e faça login com o nome de usuário apropriado. Para acessar mais informações, consulte o tópico sobre como Conexão com a instância do EC2 no Guia do usuário do Amazon Elastic Compute Cloud.
-
Se você usa o Amazon Linux, faça o seguinte para instalar o efs-utils a partir de repositórios da Amazon:
sudo yum -y install amazon-efs-utils -
Se você usa outras distribuições do Linux compatíveis, é possível fazer o seguinte:
curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sudo sh -s -- --install -
Para outras distribuições do Linux, consulte Other Linux Distributions
no README do amazon-efs-utils no GitHub.
Etapa 2: instalar o botocore
O cliente amazon-efs-utils usa o botocore para interagir com outros serviços da AWS. Por exemplo, é necessário instalar o botocore para usar o Amazon CloudWatch para monitorar o sistema de arquivos. Para ver instruções sobre como instalar e atualizar o botocore, consulte Installing botocore
Habilitar o modo FIPS para o S3 Files
Se você precisar atender às Normas Federais de Processamento de Informações (FIPS), deverá habilitar o modo FIPS no cliente. A habilitação do modo FIPS envolve a modificação do arquivo s3files-utils.conf no sistema operacional.
Siga estas etapas para habilitar o modo FIPS no cliente para o S3 Files:
Abra o arquivo
/etc/amazon/efs/s3files-utils.confusando o editor de texto de sua preferência.Encontre a linha que contém o seguinte texto:
fips_mode_enabled = falseAltere o código para o seguinte:
fips_mode_enabled = trueSalve as alterações.
Perfis e políticas do IAM
Para usar o S3 Files, é necessário configurar perfis do IAM e políticas anexadas para duas finalidades:
Acessar um bucket pelo sistema de arquivos
Anexar um sistema de arquivos a recursos de computação da AWS
Perfil do IAM para acessar um bucket pelo sistema de arquivos
Ao criar um sistema de arquivos do S3, você deve especificar um perfil do IAM que o S3 Files assume para ler e gravar no bucket do S3. Esse perfil permite que o S3 Files sincronize as alterações entre o sistema de arquivos e o bucket do S3. Ele também concede permissões para gerenciar as regras do Amazon EventBridge que o S3 Files usa para detectar alterações no bucket do S3 e acionar a sincronização. Você também deve garantir que as políticas do bucket de origem não neguem acesso ao seu recurso de computação.
nota
Quando um sistema de arquivos é criado por meio do Console de Gerenciamento da AWS, o S3 Files cria automaticamente esse perfil do IAM com as permissões necessárias.
O perfil do IAM requer o seguinte:
-
Uma política em linha como a seguinte:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3BucketPermissions", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListBucketVersions" ], "Resource": "arn:aws:s3:::bucket", "Condition": { "StringEquals": { "aws:ResourceAccount": "accountId" } } }, { "Sid": "S3ObjectPermissions", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject*", "s3:GetObject*", "s3:List*", "s3:PutObject*" ], "Resource": "arn:aws:s3:::bucket/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "accountId" } } }, { "Sid": "UseKmsKeyWithS3Files", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Condition": { "StringLike": { "kms:ViaService": "s3.region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::bucket", "arn:aws:s3:::bucket/*" ] } }, "Resource": "arn:aws:kms:region:accountId:*" }, { "Sid": "EventBridgeManage", "Effect": "Allow", "Action": [ "events:DeleteRule", "events:DisableRule", "events:EnableRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets" ], "Condition": { "StringEquals": { "events:ManagedBy": "elasticfilesystem.amazonaws.com" } }, "Resource": [ "arn:aws:events:*:*:rule/DO-NOT-DELETE-S3-Files*" ] }, { "Sid": "EventBridgeRead", "Effect": "Allow", "Action": [ "events:DescribeRule", "events:ListRuleNamesByTarget", "events:ListRules", "events:ListTargetsByRule" ], "Resource": [ "arn:aws:events:*:*:rule/*" ] } ] }Substitua os valores dos espaços reservados por seus próprios valores:
# Espaço reservado Descrição Exemplo 1 bucketO nome do bucket do S3. my-bucket 2 regionA região da AWS do bucket. us-east-1 3 accountIdO ID da sua conta da AWS. 123456789012 -
Uma política de confiança que permita que o S3 Files assuma o perfil do IAM. Adicione a política de confiança a seguir ao perfil do IAM para permitir que o S3 Files o assuma. Substitua
accountIderegionpor seus próprios valores.{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3FilesAssumeRole", "Effect": "Allow", "Principal": { "Service": "elasticfilesystem.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:s3files:region:accountId:file-system/*" } } } ] }
Perfil do IAM para anexar o sistema de arquivos a recursos de computação da AWS
Os recursos de computação nos quais o sistema de arquivos do S3 é montado devem ter um perfil do IAM anexado (por exemplo, um perfil de instância do EC2) com políticas que permitam que o recurso de computação interaja com o sistema de arquivos do S3 e o bucket do S3 de origem. Você também deve garantir que as políticas do bucket de origem não neguem acesso ao seu recurso de computação.
Adicione as duas seguintes políticas ao perfil do IAM anexado ao seu recurso de computação:
-
Permissões para que o recurso de computação se conecte e interaja com os sistemas de arquivos do S3
O perfil do IAM deve incluir permissões para que o auxiliar de montagem se conecte e interaja com os sistemas de arquivos do S3. É possível anexar uma política gerenciada pela AWS, como a política gerenciada
AmazonS3FilesClientFullAccess, se você quiser conceder ao recurso de computação acesso total de leitura e gravação ao sistema de arquivos do S3, ou a políticaAmazonS3FilesClientReadOnlyAccesspara acesso somente leitura. Você também pode anexar a política gerenciadaAmazonElasticFileSystemUtilsse quiser habilitar o monitoramento do Amazon CloudWatch. Para ter mais informações e ver uma lista completa de políticas gerenciadas para o S3 Files, consulte Políticas gerenciadas pela AWS para o Amazon S3 Files. Também é possível oferecer essas permissões adicionando permissões individuais do IAM, comos3files:ClientMountous3files:ClientWrite(não necessárias para conexões somente de leitura) ao perfil do IAM do recurso de computação. -
Uma política em linha que concede ao recurso de computação acesso de leitura a objetos do S3
Adicione a política em linha a seguir ao perfil do IAM. Essa política concede ao recurso de computação permissões para ler objetos diretamente do bucket vinculado do S3 na mesma conta a fim de otimizar o desempenho de leitura. Substitua
bucketpelo nome do bucket do S3 ou o nome do bucket pelo prefixo.{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ObjectReadAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::bucket/*" }, { "Sid": "S3BucketListAccess", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::bucket" } ] }
Grupos de segurança
Depois que o sistema de arquivos e os destinos de montagem são criados, é necessário configurar os grupos de segurança corretos para começar a usar o sistema de arquivos. Os grupos de segurança no recurso de computação e no destino de montagem devem permitir o tráfego necessário, conforme mostrado na tabela abaixo:
| Grupo de segurança | Tipo de regra | Protocolo | Porta | Origem/destino |
|---|---|---|---|---|
| Instância do EC2 | Saída | TCP | 2049 | Grupo de segurança de destino de montagem |
| Destino de montagem | Entrada | TCP | 2049 | Grupo de segurança da instância do EC2 |