Crie e faça a gestão de Apigee Spaces

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

Esta página descreve como criar espaços do Apigee na sua organização do Apigee para gerir as políticas de gestão de identidade e de acesso (IAM) para recursos da API Apigee em grande escala.

Este guia descreve os passos necessários para:

Para saber mais sobre as vantagens de usar o Apigee Spaces para gerir os seus recursos de API, consulte o artigo Apigee Spaces.

Antes de começar

Antes de começar a usar os espaços:

  • Aprovisione o Apigee. Confirme se a organização de subscrição ou de pagamento conforme o uso do Apigee que quer usar está aprovisionada. Para mais informações sobre os passos necessários para aprovisionar o Apigee, consulte o artigo Introdução ao aprovisionamento.
  • Obtenha as suas credenciais de autenticação. Antes de executar comandos para criar e gerir espaços na linha de comandos, obtenha as suas credenciais de autenticação gcloud através do seguinte comando:
    export TOKEN=$(gcloud auth print-access-token)

Funções e autorizações necessárias

Make sure that you have the following role or roles on the project: Apigee > Apigee Organization Admin

Check for the roles

  1. In the Google Cloud console, go to the IAM page.

    Go to IAM
  2. Select the project.
  3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

  4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

Grant the roles

  1. In the Google Cloud console, go to the IAM page.

    Aceder ao IAM
  2. Selecione o projeto.
  3. Clique em Conceder acesso.
  4. No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.

  5. Na lista Selecionar uma função, selecione uma função.
  6. Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
  7. Clique em Guardar.
  8. Crie um espaço

    Para realizar esta tarefa, precisa da autorização apigee.spaces.create. Esta autorização está incluída na função Apigee Organization Admin.

    Para criar um espaço na sua organização do Apigee, use o seguinte comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces" \
        --data-raw '{
           "name":"SPACE_NAME",
           "displayName":"DISPLAY_NAME",
        }'

    Onde:

    • ORG_NAME é o nome da sua organização do Apigee.
    • SPACE_NAME é o nome e o ID do espaço.
    • DISPLAY_NAME é o nome do espaço tal como deve aparecer na IU do Apigee na Cloud Console. Se não for fornecido um nome a apresentar, o nome do espaço é usado como nome a apresentar.

    Por exemplo, o comando seguinte cria um espaço com o nome red na organização acme:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
        https://apigee.googleapis.com/v1/organizations/acme/spaces \
        --data-raw '{
           "name":"red",
           "displayName":"Red",
        }'

    Depois de criar um espaço na sua organização, os membros da organização que usam a IU do Apigee na Cloud Console vão ver o espaço como um parâmetro disponível quando criam recursos de API na IU. Além disso, quando vir listas de proxies de API, produtos de API e fluxos partilhados na IU, o espaço aparece como um atributo para os recursos de API atribuídos a esse espaço.

    Espaços.

    Faça a gestão de membros e funções num espaço

    Depois de criar um espaço, pode adicionar membros da equipa ao espaço e atribuir as funções da IAM necessárias para criar e gerir recursos da API no espaço. Os utilizadores do Apigee só podem criar e gerir recursos em espaços nos quais são membros da equipa com as autorizações adequadas. Uma vez que o controlo de acesso do IAM é concedido ao nível dos espaços, os membros da organização não podem aceder nem gerir recursos da API Apigee pertencentes ao espaço, a menos que sejam especificamente adicionados ao espaço. Para uma vista geral das funções e autorizações da IAM necessárias para gerir recursos do espaço, consulte o artigo Crie e faça a gestão de recursos do espaço.

    Adicione um membro da organização a um espaço

    Quando um membro da organização é adicionado a um espaço, é criada uma associação de políticas da IAM para o espaço que usa dois argumentos:

    • A lista de membros do espaço
    • A função ou a lista de funções concedidas aos membros

    Para realizar esta tarefa, precisa da autorização apigee.spaces.setIamPolicy. Esta autorização está incluída na função Apigee Organization Admin.

    Para adicionar um membro da organização a um espaço e atribuir uma função do IAM, use o seguinte comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \
          '{
            "policy":{
              "bindings":[
                {
                  "members": ["user:USER_EMAIL"],
                  "role": "roles/IAM_ROLE"
                }
              ]
            }
          }'

    Onde:

    • ORG_NAME é o nome da organização da Apigee.
    • SPACE_NAME é o nome do espaço.
    • USER_EMAIL é o endereço de email de um utilizador que está a adicionar ao espaço.
    • IAM_ROLE é o nome da função de IAM que está a atribuir ao utilizador como membro do espaço.

    Por exemplo, este comando adiciona o utilizador my-email@acme.com ao espaço red na organização acme e concede a função de IAM apigee.spaceContentEditor:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \
          '{
            "policy":{
              "bindings":[
                {
                  "members": ["user:my-email@acme.com"],
                  "role": "roles/apigee.spaceContentEditor"
                }
              ]
            }
          }'

    É possível adicionar funções e autorizações adicionais para os membros do espaço atualizando a política de IAM do espaço. Para atualizar a política de IAM de um espaço, use o setIamPolicy método descrito nesta secção, usando a lista revista das funções e autorizações pretendidas. Esta ação cria uma nova política de IAM para o espaço, com funções e autorizações ajustadas em conformidade.

    Adicione uma equipa de membros a um espaço

    Em alternativa, pode adicionar uma equipa de membros a um espaço e atribuir uma ou mais funções de IAM. Para adicionar uma equipa de membros a um espaço e atribuir uma função do IAM, use o seguinte comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
       "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \
         '{
           "policy":{
             "bindings":[
               {
                 "members": ["group:GROUP_EMAIL"],
                 "role": "roles/IAM_ROLE"
               }
             ]
           }
         }'

    Onde:

    • ORG_NAME é o nome da organização da Apigee.
    • SPACE_NAME é o nome do espaço.
    • GROUP_EMAIL é o endereço de email de um grupo que está a adicionar ao espaço.
    • IAM_ROLE é o nome da função do IAM que está a atribuir à equipa como membro do espaço.

    Por exemplo, este comando adiciona o grupo acme-team@acme.com ao espaço red na organização acme e atribui a função apigee.spaceContentEditor ao grupo:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
       "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \
         '{
           "policy":{
             "bindings":[
               {
                 "members": ["group:red-team@acme.com"],
                 "role": "roles/apigee.spaceContentEditor"
               }
             ]
           }
         }'

    Conforme indicado em Adicione um membro da organização a um espaço, a função do IAM apigee.spaceContentEditor contém muitas das autorizações necessárias para gerir recursos do espaço. No entanto, pode ter de conceder funções adicionais aos utilizadores para realizarem tarefas específicas.

    Verifique a atribuição da política IAM do Spaces

    Para realizar esta tarefa, precisa da autorização apigee.spaces.getIamPolicy. Esta autorização está incluída na função Apigee Organization Admin.

    Para verificar se a política de IAM está definida corretamente para o espaço, use o seguinte comando:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:getIamPolicy"

    Onde:

    • ORG_NAME é o nome da organização da Apigee.
    • SPACE_NAME é o nome do espaço.

    Por exemplo, o seguinte comando é usado para confirmar que a política de IAM está definida corretamente para o espaço red na organização acme:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:getIamPolicy"

    O resultado do comando devolve a política IAM atual para o espaço e deve ter um aspeto semelhante ao seguinte:

    {
      "version": "0",
      "bindings": [
        {
          "role": "roles/apigee.spaceContentEditor",
          "members": [
            "group:red-team@acme.com"
          ]
        }
      ]
    }

    Neste exemplo, a política de IAM para o espaço concede a função apigee.spaceContentEditor aos membros do espaço, neste caso, os membros do grupo red-team@acme.com

    Tenha em atenção que os membros da equipa vermelha são os únicos membros da organização aos quais é concedido acesso ao espaço vermelho. Isto significa que apenas os membros da equipa vermelha podem criar e gerir recursos da API no espaço vermelho. Se os membros de outra equipa da organização, como team-blue@acme.com, tentarem aceder a um proxy de API criado no espaço red, vão ver o seguinte erro:

    {
      "error": {
        "code": 403,
        "message": "Permission denied on resource \"organizations\/acme\/apis\/proxy-1\" (or it may not exist).",
        "status": "PERMISSION_DENIED"
      }
    }

    Remova membros de um espaço

    Para remover membros ou um grupo de membros de um espaço, tem de definir uma nova política de IAM para o espaço com uma lista revista de membros ou grupos. A utilização do método setIamPolicy cria uma nova política de IAM para o espaço, com as funções e os membros ajustados em conformidade.

    Por exemplo, para atualizar os membros do espaço da equipa blue, pode primeiro verificar a política de IAM atual através do seguinte comando:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:getIamPolicy"

    O resultado do comando devolve a política IAM atual para o espaço e deve ter um aspeto semelhante ao seguinte:

    {
      "version": "0",
      "bindings": [
        {
          "role": "roles/apigee.spaceContentEditor",
          "members": [
            "group: blue-team@acme.com",
            "users: user-a@acme.com, user-b@acme.com, user-c@acme.com"
          ]
        }
      ]
    }

    Para remover user-b@acme.com do espaço, use o seguinte comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
      "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:setIamPolicy" -d \
        '{
          "policy":{
            "bindings":[
              {
                "members": [
                  "group:blue-team@acme.com",
                  "users: user-a@acme.com, user-c@acme.com"
                ]
                "role": "roles/apigee.spaceContentEditor"
              }
            ]
          }
        }'

    A nova política de IAM para o espaço vai deixar de incluir user-b@acme.com.

    Para remover um membro de um grupo incluído num espaço, primeiro remova o membro do grupo e, em seguida, execute novamente o comando setIamPolicy para atualizar a política de IAM do espaço com a associação correta para o alias de email do grupo.

    Liste todos os espaços numa organização

    Para realizar esta tarefa, precisa da autorização apigee.spaces.list. Esta autorização está incluída na função Apigee Organization Admin.

    Para apresentar uma lista de todos os espaços numa organização do Apigee, use o seguinte comando:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces"

    Em que ORG_NAME é o nome da organização da Apigee.

    Por exemplo, o seguinte comando apresenta uma lista de todos os espaços na organização acme:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces"

    Este comando devolve algo semelhante ao seguinte:

      {
        "spaces": [
            {
                "name": "red",
                "createTime": "2024-08-02T23:26:03.001512Z",
                "updateTime": "2024-08-02T23:26:03.001512Z"
            },
            {
                "name": "blue",
                "createTime": "2024-08-02T00:34:54.159331Z",
                "updateTime": "2024-08-02T00:34:54.159331Z"
          }
          ]
      }

    Obtenha detalhes do espaço

    Para realizar esta tarefa, precisa da autorização apigee.spaces.get. Esta autorização está incluída na função Apigee Organization Admin.

    Use o seguinte comando para obter detalhes do espaço:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"

    Onde:

    • ORG_NAME é o nome da organização da Apigee.
    • SPACE_NAME é o nome do espaço.

    Por exemplo, o comando seguinte obtém detalhes sobre o espaço red na organização acme:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"

    Este comando devolve algo semelhante ao seguinte:

      {
          "name": "red",
          "createTime": "2024-08-02T23:26:03.001512Z",
          "updateTime": "2024-08-02T23:26:03.001512Z"
      }

    Atualize um espaço

    Para realizar esta tarefa, precisa da autorização apigee.spaces.update. Esta autorização está incluída na função Apigee Organization Admin.

    Para atualizar um espaço na sua organização do Apigee, use o seguinte comando:

    curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME" \
          --data-raw '{
            "displayName":"DISPLAY_NAME"
          }'

    Onde:

    • ORG_NAME é o nome da organização da Apigee.
    • SPACE_NAME é o nome e o ID do espaço.
    • DISPLAY_NAME é o novo nome a apresentar do espaço.

    Por exemplo, o comando seguinte atualiza o nome a apresentar do espaço red na organização acme:

    curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red" -d \
        '{
          "displayName": "Red team space"
        }'

    Elimine um espaço

    Para realizar esta tarefa, precisa da autorização apigee.spaces.delete. Esta autorização está incluída na função Apigee Organization Admin. Antes de eliminar um espaço, certifique-se de que todos os recursos no espaço também foram eliminados.

    Para eliminar um espaço na sua organização do Apigee, use o seguinte comando:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"

    Por exemplo, o seguinte comando elimina o espaço red na organização acme:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"

    Se tentar eliminar um espaço com recursos ativos ainda associados, é apresentado o seguinte erro:

    {
      "error": {
        "code": 400,
        "message": "Space \"red\" has resources associated with it. Please delete the resources before deleting the space.",
        "status": "FAILED_PRECONDITION"
      }
    }

    Para resolver o erro, elimine ou mova os recursos no espaço antes de tentar eliminar o espaço.

    O que se segue?