Ir para o conteúdo

Como faço para acessar um bucket em outra conta por meio de um ponto de acesso S3 restrito a uma VPC?

6 minuto de leitura
0

Tenho uma entidade do AWS Identity and Access Management (IAM) e um bucket do Amazon Simple Storage Service (Amazon S3) em diferentes contas da AWS. Quero conceder à entidade IAM acesso entre contas ao bucket por meio de um ponto de acesso do Amazon S3. O ponto de acesso é restrito a uma Amazon Virtual Private Cloud (Amazon VPC).

Breve descrição

Você pode conceder a um perfil ou usuário do IAM em uma conta da AWS acesso a um bucket do Amazon S3 em outra conta da AWS por meio de um ponto de acesso do S3 restrito a uma Amazon VPC.

Suponha que a entidade IAM esteja na Conta A e o bucket do S3 esteja na Conta B. Para conceder à entidade IAM acesso ao bucket por meio de um ponto de acesso do S3 restrito a uma Amazon VPC, conclua as seguintes etapas:

  1. Crie e conecte um ponto de acesso do Amazon S3 ao bucket na Conta B.
  2. Crie um endpoint de gateway Amazon S3 VPC na Conta A.
  3. Anexe políticas ao ponto de acesso, ao bucket e à entidade IAM.

**Observação:**A identidade do IAM na conta A deve estar na mesma região da AWS que o bucket do S3 na conta B.

Solução

Crie e conecte um ponto de acesso do Amazon S3 ao bucket na Conta B

Para criar e anexar um ponto de acesso do Amazon S3 ao bucket na Conta B, conclua as seguintes etapas:

  1. Abra o console do Amazon S3.
  2. No painel de navegação, escolha Pontos ** de ** acesso.
  3. Escolha Criar ponto de acesso.
  4. Em Nome do ponto de acesso, digite o nome do ponto de acesso. Para obter mais informações sobre como nomear pontos de acesso, consulte Regras para nomear pontos de acesso do Amazon S3.
  5. Em Nome do bucket, escolha Escolha um bucket nesta conta e insira o nome do bucket ao qual você deseja anexar o ponto de acesso.
  6. Em Origem da rede, escolha Nuvem privada virtual (VPC).
  7. Para a ID da VPC, insira a ID da VPC da outra conta da AWS (Conta A).
  8. Em Bloquear configurações de acesso público para esse ponto de acesso, escolha as configurações de bloqueio de acesso público que você deseja aplicar ao ponto de acesso.
    **Observação:**Depois de criar um ponto de acesso, você não pode alterar suas configurações de bloqueio de acesso público.
  9. Deixe a Política de pontos de acesso em branco.
  10. Escolha Criar ponto de acesso.

Crie um endpoint de gateway Amazon S3 VPC na Conta A

Para criar um endpoint de gateway S3 VPC na Conta A que conceda acesso ao bucket Amazon S3 na Conta B, conclua as seguintes etapas:

  1. Abra o console da Amazon VPC.
  2. No painel de navegação, selecione Endpoints.
  3. Escolha Criar endpoint.
  4. Em Categoria de serviço, selecione Serviços da AWS.
  5. Em Serviços, adicione o filtro Type = Gateway e selecione com.amazonaws.<region>.s3.
  6. Para VPC, selecione a VPC que você usou para criar o ponto de acesso na Conta B.
  7. Para Tabelas de rotas, escolha as tabelas de rotas que você precisa que seu endpoint use.
  8. Em Política, selecione Acesso total para permitir todas as operações por todos os participantes em todos os recursos no endpoint da VPC. Ou selecione Personalizar e use sua própria política que permita as ações necessárias do S3.

Por exemplo, a seguinte política de VPC endpoint permite todas as ações do S3 em todos os buckets:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:*"
    }
  ]
}

**Observação:**Os endpoints do gateway não permitem o acesso de outras regiões da AWS.

Anexe políticas ao ponto de acesso, bucket e entidade IAM

Para conceder à entidade IAM na Conta A acesso ao bucket na Conta B por meio do ponto de acesso, você deve anexar políticas aos seguintes:

  • O ponto de acesso
  • Um bucket do S3
  • A entidade IAM

Política de pontos de acesso

Para conceder permissão à entidade IAM na Conta A ao ponto de acesso S3 na Conta B, anexe a seguinte política ao seu ponto de acesso:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DelegateControlToAccessPoint",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::AccountA-ID:user/user1",
          "arn:aws:iam::AccountA-ID:role/role01"
        ]
      },
      "Action": [
        "s3:ListBucket",
        "s3:PutObject",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-acess-point/object/*",
        "arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point"
      ]
    }
  ]
}

Política de Buckets

Para conceder permissão à entidade IAM na Conta A para o bucket na Conta B por meio do ponto de acesso, anexe a seguinte política ao seu bucket:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowCrossAccountAccess",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::AccountA-ID:user/user1",
          "arn:aws:iam::AccountA-ID:role/role01"
        ]
      },
      "Action": [
        "s3:GetObject",
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ],
      "Condition": {
        "StringEquals": {
          "s3:DataAccessPointArn": "arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point"
        }
      }
    }
  ]
}

Política do IAM

Para conceder permissão à entidade IAM na Conta A ao bucket e ao ponto de acesso na Conta B, anexe a seguinte política à sua entidade IAM:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowCrossAccountAccessToBucketAndAP",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:PutObject",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point",
        "arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point/object/*",
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ]
    }
  ]
}

Exemplo de comandos da CLI da AWS para realizar operações do S3 no bucket por meio do ponto de acesso

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.

Para listar os objetos por meio do ponto de acesso, execute o comando ls:

aws s3 ls arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point

Para fazer upload de arquivos pelo ponto de acesso, execute o comando cp:

aws s3 cp file.txt s3://arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point

Você também pode usar o comando cp para baixar arquivos por meio do ponto de acesso:

aws s3 cp s3://arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point file.txt

**Observação:**A solicitação deve se originar de uma instância do Amazon Elastic Compute Cloud (Amazon EC2) que esteja na mesma VPC e na mesma região do bucket.

AWS OFICIALAtualizada há um ano