Todos os produtos
Search
Central de documentação

Object Storage Service:0003-00000301

Última atualização: Aug 21, 2026

Descrição do problema

A política configurada para o token de segurança gerado pelo Security Token Service (STS) negou a solicitação.

Causas

O parâmetro policy no código de obtenção do token de segurança do STS causa um problema de permissão.

Exemplos

No código de exemplo Java a seguir para obter um token de segurança, o parâmetro policy especifique as permissões associadas ao token. As permissões efetivas do token correspondem à interseção entre as permissões da função e as permissões definidas no parâmetro policy do código:

String roleSessionName = "<session-name>";
String policy = "{\n" +
        "    \"Version\": \"1\", \n" +
        "    \"Statement\": [\n" +
        "        {\n" +
        "            \"Action\": [\n" +
        "                \"oss:*\"\n" +
        "            ], \n" +
        "            \"Resource\": [\n" +
        "                \"acs:oss:*:*:*\" \n" +
        "            ], \n" +
        "            \"Effect\": \"Allow\"\n" +
        "        }\n" +
        "    ]\n" +
        "}";
try {
    // Add the endpoint. The STS endpoint is used directly, so leave the first two parameters empty and do not specify a region ID.
    DefaultProfile.addEndpoint("", "", "Sts", endpoint);
    // Create the default profile. Leave the parameter empty and do not specify a region ID.
    IClientProfile profile = DefaultProfile.getProfile("", accessKeyId, accessKeySecret);
    // Use the profile to create a client.
    DefaultAcsClient client = new DefaultAcsClient(profile);
    final AssumeRoleRequest request = new AssumeRoleRequest();
    request.setMethod(MethodType.POST);
    request.setRoleArn(roleArn);
    request.setRoleSessionName(roleSessionName);
    request.setPolicy(policy); // If the policy is empty, the user is granted all permissions of the role.
    request.setDurationSeconds(1000L); // Specify the validity period of the credentials.

Soluções

Verifique as permissões especificadas no parâmetro policy da operação da API do OSS. Para mais informações, consulte Use temporary credentials provided by STS to access OSS. As permissões efetivas aplicadas a um token de segurança correspondem à interseção entre as permissões da função concedidas na Step 4: Grant the role permissions to upload objects to OSS e as permissões definidas pelo parâmetro policy na Step 5: Obtain temporary access credentials. Use os exemplos a seguir para validar a interseção das permissões configuradas nessas duas etapas.

  • Exemplo 1

    Se a permissão da função configurada na Etapa 4 for a permissão de sistema AliyunOSSFullAccess e a permissão oss:PutObject estiver configurada na Etapa 5, as credenciais de acesso temporário terão apenas a permissão oss:PutObject. Nesse caso, você só pode fazer upload de objetos para o bucket especificado.

  • Exemplo 2

    Se a permissão da função configurada na Etapa 4 for a permissão de sistema oss:PutObject e a permissão oss:GetObject estiver definida na Etapa 5, as credenciais de acesso temporário não receberão nenhuma permissão válida. Consequentemente, não será possível executar operações no bucket especificado.