Todos os produtos
Search
Central de documentação

Resource Access Management:Gerencie permissões para OSS

Última atualização: Jun 26, 2026

Crie políticas personalizadas do RAM para controlar quais recursos do OSS os usuários do RAM podem acessar e como.

Políticas do sistema e pré-requisitos

  • Duas políticas do sistema cobrem padrões comuns de acesso ao OSS:

    • AliyunOSSFullAccess: concede permissões totais de gerenciamento em todos os buckets do OSS.

    • AliyunECSReadOnlyAccess: concede permissões somente leitura nos buckets do OSS.

    Se nenhuma dessas políticas atender aos seus requisitos, crie uma política personalizada com os exemplos deste tópico.

  • Antes de criar políticas, revise as permissões disponíveis do OSS. Para mais informações, consulte Política do RAM.

Conceder acesso ao OSS a um usuário do RAM

  1. Crie um usuário do RAM./@cmd Para mais informações, consulte Criar um usuário do RAM.

  2. Crie uma política personalizada./@cmd Para mais informações, consulte Criar uma política personalizada e Exemplos de políticas.

  3. Anexe a política ao usuário do RAM./@cmd Para mais informações, consulte Gerencie permissões de usuários do RAM.

Exemplos de políticas

  • Exemplo 1: Conceder acesso total de gerenciamento a um bucket específico

    Esta política concede ao usuário do RAM todas as operações do OSS (oss:*) no bucket myphotos e em todos os objetos nele contidos.

    {
        "Version": "1",
        "Statement": [
            {
                "Sid": "AllowFullAccessToMyphotos",
                "Effect": "Allow",
                "Action": "oss:*",
                "Resource": [
                    "acs:oss:*:*:myphotos",
                    "acs:oss:*:*:myphotos/*"
                ]
            }
        ]
    }
  • Exemplo 2: Conceder acesso somente leitura a um bucket

    Esta política permite ao usuário do RAM listar objetos e ler o conteúdo no bucket myphotos. As permissões necessárias variam conforme o acesso ocorre via SDK/CLI ou pelo console do OSS.

    • Acesso via SDK e CLI

      São necessárias duas instruções: uma para listar objetos no bucket e outra para ler objetos individuais.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowListObjectsInMyphotos",
                  "Effect": "Allow",
                  "Action": "oss:ListObjects",
                  "Resource": "acs:oss:*:*:myphotos"
              },
              {
                  "Sid": "AllowGetObjectsInMyphotos",
                  "Effect": "Allow",
                  "Action": "oss:GetObject",
                  "Resource": "acs:oss:*:*:myphotos/*"
              }
          ]
      }
    • Acesso pelo console do OSS

      O console exige permissões adicionais além das necessárias para SDK/CLI.

      Nota

      Ao fazer login no console do OSS, o sistema chama as operações ListBuckets, GetBucketAcl e GetObjectAcl para verificar se o bucket é público.

      A primeira instrução concede operações de visibilidade no nível do console para todos os buckets. A segunda e a terceira concedem acesso de listagem e leitura restritos ao bucket myphotos.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowConsoleVisibility",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListBuckets",
                      "oss:GetBucketStat",
                      "oss:GetBucketInfo",
                      "oss:GetBucketTagging",
                      "oss:GetBucketAcl"
                  ],
                  "Resource": "acs:oss:*:*:*"
              },
              {
                  "Sid": "AllowListObjectsInMyphotos",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListObjects",
                      "oss:GetBucketAcl"
                  ],
                  "Resource": "acs:oss:*:*:myphotos"
              },
              {
                  "Sid": "AllowGetObjectsInMyphotos",
                  "Effect": "Allow",
                  "Action": [
                      "oss:GetObject",
                      "oss:GetObjectAcl"
                  ],
                  "Resource": "acs:oss:*:*:myphotos/*"
              }
          ]
      }
  • Exemplo 3: Restringir acesso a endereços IP específicos

    Use o elemento Condition para limitar os endereços IP que podem acessar o bucket myphotos. Escolha entre uma abordagem de lista de permissões ou de lista de bloqueios.

    • Lista de permissões de ip (Allow com condição de ip)

      Esta política concede acesso de leitura ao bucket myphotos apenas quando a solicitação se origina dos blocos CIDR 192.168.0.0/16 ou 172.16.1.0/16. A condição de ip aplica-se somente à instrução de acesso aos dados; a instrução Allow para visibilidade no console permanece irrestrita.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowConsoleVisibility",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListBuckets",
                      "oss:GetBucketStat",
                      "oss:GetBucketInfo",
                      "oss:GetBucketTagging",
                      "oss:GetBucketAcl"
                  ],
                  "Resource": [
                      "acs:oss:*:*:*"
                  ]
              },
              {
                  "Sid": "AllowReadFromAllowedIPs",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListObjects",
                      "oss:GetObject"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos",
                      "acs:oss:*:*:myphotos/*"
                  ],
                  "Condition": {
                      "IpAddress": {
                          "acs:SourceIp": ["192.168.0.0/16", "172.16.1.0/16"]
                      }
                  }
              }
          ]
      }
    • Lista de bloqueios de ip (Deny com condição de ip)

      Esta política nega explicitamente todas as operações do OSS quando a solicitação vem de um endereço ip fora do bloco CIDR 192.168.0.0/16. Um usuário do RAM fora desse intervalo não consegue acessar nem gerenciar o bucket myphotos.

      As duas primeiras instruções concedem as permissões Allow necessárias; a terceira aplica o Deny. Ambas são obrigatórias: o Allow concede o acesso e o Deny o sobrepõe para IPs fora do intervalo permitido.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowConsoleVisibility",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListBuckets",
                      "oss:GetBucketStat",
                      "oss:GetBucketInfo",
                      "oss:GetBucketTagging",
                      "oss:GetBucketAcl"
                  ],
                  "Resource": [
                      "acs:oss:*:*:*"
                  ]
              },
              {
                  "Sid": "AllowReadFromMyphotos",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListObjects",
                      "oss:GetObject"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos",
                      "acs:oss:*:*:myphotos/*"
                  ]
              },
              {
                  "Sid": "DenyAccessFromOutsideAllowedIP",
                  "Effect": "Deny",
                  "Action": "oss:*",
                  "Resource": [
                      "acs:oss:*:*:*"
                  ],
                  "Condition": {
                      "NotIpAddress": {
                          "acs:SourceIp": ["192.168.0.0/16"]
                      }
                  }
              }
          ]
      }
      Nota

      Uma instrução Deny tem prioridade sobre uma instrução Allow. Se um usuário do RAM tentar ler dados e seu endereço ip não estiver no bloco CIDR 192.168.0.0/16, o OSS retornará um erro de permissão negada, mesmo que ele tenha acesso ao bucket myphotos.

  • Exemplo 4: Conceder acesso somente leitura a uma pasta específica

    A autorização no nível de pasta é um uso avançado das políticas do RAM. As permissões necessárias dependem da forma como o usuário acessa o OSS.

    O bucket a seguir armazena fotos organizadas por local e ano:

    O bucket myphotos contém pastas nomeadas por local, cada uma com subpastas nomeadas por ano.

    myphotos[Bucket]
      ├── beijing
      │   ├── 2014
      │   └── 2015
      ├── hangzhou
      │   ├── 2013
      │   ├── 2014
      │   └── 2015 // Grant read-only permissions on this folder to a RAM user.
      └── qingdao
          ├── 2014
          └── 2015

    O objetivo é conceder acesso somente leitura à pasta myphotos/hangzhou/2015/. Escolha o cenário correspondente ao seu caso de uso:

    • Cenário 1: Acesso direto ao objeto sem listagem de pastas

      O usuário do RAM lê objetos pelo caminho completo, mas não pode listar o conteúdo da pasta. Anexe esta política a serviços de aplicação que buscam objetos por caminhos conhecidos.

      Neste cenário, o usuário usa o caminho completo para ler os dados do objeto.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowGetObjectsInHangzhou2015",
                  "Effect": "Allow",
                  "Action": [
                      "oss:GetObject"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos/hangzhou/2015/*"
                  ]
              }
          ]
      }
    • Cenário 2: Acesso à pasta via CLI do OSS

      O usuário do RAM lista e lê objetos em myphotos/hangzhou/2015/ usando a CLI do OSS ou chamando operações do OSS diretamente. Use esta política para conceder acesso a desenvolvedores de software.

      Neste cenário, o usuário utiliza a CLI do OSS ou chama operações para ler dados da pasta.

      A permissão ListObjects é necessária para enumerar objetos na pasta. A condição Prefix restringe a listagem apenas à pasta de destino.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowGetObjectsInHangzhou2015",
                  "Effect": "Allow",
                  "Action": [
                      "oss:GetObject"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos/hangzhou/2015/*"
                  ]
              },
              {
                  "Sid": "AllowListObjectsInHangzhou2015",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListObjects"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos"
                  ],
                  "Condition": {
                      "StringLike": {
                          "oss:Prefix": "hangzhou/2015/*"
                      }
                  }
              }
          ]
      }
    • Cenário 3: Acesso à pasta pelo console do OSS

      O usuário do RAM navega até myphotos/hangzhou/2015/ usando o console do OSS ou um cliente visual, como o Windows File Explorer.

      Neste cenário, o usuário utiliza um cliente visual do OSS (por exemplo, Windows File Explorer) para acessar a pasta myphotos/hangzhou/2015/.

      Três conjuntos de permissões são necessários para que a navegação no console funcione corretamente:

      • Permissão para listar todos os buckets

      • Permissão para listar pastas em myphotos

      • Permissão para listar pastas em myphotos/hangzhou

      A primeira instrução concede visibilidade no console para todos os buckets. A segunda concede acesso de leitura à pasta de destino. A terceira usa as condições Delimiter e Prefix para ative a navegação pasta por pasta até hangzhou/2015/.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowConsoleVisibility",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListBuckets",
                      "oss:GetBucketStat",
                      "oss:GetBucketInfo",
                      "oss:GetBucketTagging",
                      "oss:GetBucketAcl"
                  ],
                  "Resource": [
                      "acs:oss:*:*:*"
                  ]
              },
              {
                  "Sid": "AllowGetObjectsInHangzhou2015",
                  "Effect": "Allow",
                  "Action": [
                      "oss:GetObject",
                      "oss:GetObjectAcl"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos/hangzhou/2015/*"
                  ]
              },
              {
                  "Sid": "AllowFolderNavigationInMyphotos",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListObjects"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos"
                  ],
                  "Condition": {
                      "StringLike": {
                          "oss:Delimiter": "/",
                          "oss:Prefix": [
                              "",
                              "hangzhou/",
                              "hangzhou/2015/*"
                          ]
                      }
                  }
              }
          ]
      }