Criar uma role de acesso de fornecedor de nuvem

POSTAR /api/atlas/v2/groups/{groupId}/cloudProviderAccess

Cria uma role de acesso para o provedor de nuvem especificado. Alguns recursos do MongoDB Cloud usam essas roles de acesso do provedor de nuvem para a autenticação. Para usar esse recurso, a conta de serviço ou a chave de API solicitante deve ter a role de proprietário do projeto. Para o fornecedor de GCP, se a pasta do projeto ainda não tiver sido provisionada, o Atlas criará a função de forma assíncrona. Uma role intermediária com status IN_PROGRESS será retornada e a conta de serviço final será provisionada. Depois que o projeto GCP for configurado, as solicitações subsequentes criarão a conta de serviço de forma síncrona.

Configurar acesso a provedores de nuvem

parâmetros de caminho

  • groupId string Obrigatório

    Sequência única de 24dígitos hexadecimais que identifica seu projeto. Use o endpoint /groups para extrair todos os projetos aos quais o usuário autenticado tem acesso.

    AVISO: grupos e projetos são termos sinônimos. O ID do seu grupo é igual ao ID do seu projeto. Para grupos existentes, o ID do grupo/projeto permanece o mesmo. O recurso e os endpoints correspondentes usam o termo grupos.

    O formato deve corresponder ao seguinte padrão: ^([a-f0-9]{24})$.

parâmetros de query

  • envelope booleano

    Sinalizador que indica se o aplicativo empacota a resposta em um objeto JSON envelope. Alguns clientes de API não podem acessar os cabeçalhos de resposta HTTP ou o código de status. Para corrigir isso, defina envelope=true na consulta. Os endpoints que retornam uma lista de resultados usam o objeto de resultados como um envelope. O aplicativo adiciona o parâmetro de status ao corpo da resposta.

    O valor padrão é false.

  • pretty booleano

    Sinalizador que indica se o corpo da resposta deve estar no formato prettyprint.

    O valor padrão é false.

    Prettyprint
application/vnd.atlas.2023-01-01+json

corpo, corpo objeto Obrigatório

Cria uma função para o fornecedor de nuvem especificado.

Um dos seguintes:

Respostas

  • 200 application/vnd.atlas.2023-01-01+json

    OK

    Um dos seguintes:
  • 401 aplicação/json

    Não autorizado.

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • badRequestDetail objeto

      Detalhes da solicitação inválida.

      Ocultar atributo ruimRequestDetail Mostrar atributo ruimRequestDetail objeto
      • Campos array[objeto]

        Descreve todas as violações em uma solicitação do cliente .

        Ocultar atributos de campos Mostrar atributos dos campos objeto
        • Descrição string Obrigatório

          Uma descrição do motivo pelo qual o elemento de solicitação é incorreto.

        • Campo string Obrigatório

          Um caminho que leva a um campo no corpo da solicitação.

    • detalhe string

      Descreve as condições ou os motivos específicos que causam cada tipo de erro.

    • Erro integer(int32) Obrigatório

      O código de status HTTP retornado com este erro.

      Documentação externa
    • Código de erro string Obrigatório

      Código de erro do aplicativo retornado com esse erro.

    • Parâmetros array[objeto]

      Parâmetros usados para fornecer mais informações sobre o erro.

    • Razão string

      Mensagens de erro de aplicativo retornadas com este erro.

  • 403 aplicação/json

    Forbidden.

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • badRequestDetail objeto

      Detalhes da solicitação inválida.

      Ocultar atributo ruimRequestDetail Mostrar atributo ruimRequestDetail objeto
      • Campos array[objeto]

        Descreve todas as violações em uma solicitação do cliente .

        Ocultar atributos de campos Mostrar atributos dos campos objeto
        • Descrição string Obrigatório

          Uma descrição do motivo pelo qual o elemento de solicitação é incorreto.

        • Campo string Obrigatório

          Um caminho que leva a um campo no corpo da solicitação.

    • detalhe string

      Descreve as condições ou os motivos específicos que causam cada tipo de erro.

    • Erro integer(int32) Obrigatório

      O código de status HTTP retornado com este erro.

      Documentação externa
    • Código de erro string Obrigatório

      Código de erro do aplicativo retornado com esse erro.

    • Parâmetros array[objeto]

      Parâmetros usados para fornecer mais informações sobre o erro.

    • Razão string

      Mensagens de erro de aplicativo retornadas com este erro.

  • 404 aplicação/json

    Não encontrado.

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • badRequestDetail objeto

      Detalhes da solicitação inválida.

      Ocultar atributo ruimRequestDetail Mostrar atributo ruimRequestDetail objeto
      • Campos array[objeto]

        Descreve todas as violações em uma solicitação do cliente .

        Ocultar atributos de campos Mostrar atributos dos campos objeto
        • Descrição string Obrigatório

          Uma descrição do motivo pelo qual o elemento de solicitação é incorreto.

        • Campo string Obrigatório

          Um caminho que leva a um campo no corpo da solicitação.

    • detalhe string

      Descreve as condições ou os motivos específicos que causam cada tipo de erro.

    • Erro integer(int32) Obrigatório

      O código de status HTTP retornado com este erro.

      Documentação externa
    • Código de erro string Obrigatório

      Código de erro do aplicativo retornado com esse erro.

    • Parâmetros array[objeto]

      Parâmetros usados para fornecer mais informações sobre o erro.

    • Razão string

      Mensagens de erro de aplicativo retornadas com este erro.

  • 500 aplicação/json

    Erro interno do servidor.

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • badRequestDetail objeto

      Detalhes da solicitação inválida.

      Ocultar atributo ruimRequestDetail Mostrar atributo ruimRequestDetail objeto
      • Campos array[objeto]

        Descreve todas as violações em uma solicitação do cliente .

        Ocultar atributos de campos Mostrar atributos dos campos objeto
        • Descrição string Obrigatório

          Uma descrição do motivo pelo qual o elemento de solicitação é incorreto.

        • Campo string Obrigatório

          Um caminho que leva a um campo no corpo da solicitação.

    • detalhe string

      Descreve as condições ou os motivos específicos que causam cada tipo de erro.

    • Erro integer(int32) Obrigatório

      O código de status HTTP retornado com este erro.

      Documentação externa
    • Código de erro string Obrigatório

      Código de erro do aplicativo retornado com esse erro.

    • Parâmetros array[objeto]

      Parâmetros usados para fornecer mais informações sobre o erro.

    • Razão string

      Mensagens de erro de aplicativo retornadas com este erro.

POST /api/atlas/v2/groups/{groupId}/cloudProviderAccess
atlas api cloudProviderAccess createGroupCloudProviderAccess --help
import (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20231115001/admin"
)

func main() {
	ctx := context.Background()
	clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
	clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")

	// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
	client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))

	if err != nil {
		log.Fatalf("Error: %v", err)
	}

	params = &sdk.CreateGroupCloudProviderAccessApiParams{}
	sdkResp, httpResp, err := client.CloudProviderAccessApi.
		CreateGroupCloudProviderAccessWithParams(ctx, params).
		Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "Accept: application/vnd.atlas.2023-11-15+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/cloudProviderAccess" \
  -d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
  --digest --include \
  --header "Accept: application/vnd.atlas.2023-11-15+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/cloudProviderAccess" \
  -d '{ <Payload> }'
Exemplos de solicitação
{
  "providerName": "AWS"
}
{
  "providerName": "AZURE",
  "atlasAzureAppId": "string",
  "servicePrincipalId": "string",
  "tenantId": "string"
}
{
  "providerName": "GCP"
}
Exemplos de resposta (200)
{
  "providerName": "string",
  "atlasAWSAccountArn": "arn:aws:iam::772401394250:role/my-test-aws-role",
  "atlasAssumedRoleExternalId": "string",
  "authorizedDate": "2025-05-04T09:42:00Z",
  "createdDate": "2025-05-04T09:42:00Z",
  "featureUsages": [
    {
      "featureType": "ATLAS_DATA_LAKE",
      "featureId": {
        "groupId": "32b6e34b3d91647abb20e7b8",
        "name": "string"
      }
    }
  ],
  "iamAssumedRoleArn": "arn:aws:iam::123456789012:root",
  "roleId": "32b6e34b3d91647abb20e7b8"
}
{
  "providerName": "AZURE",
  "_id": "32b6e34b3d91647abb20e7b8",
  "atlasAzureAppId": "string",
  "createdDate": "2025-05-04T09:42:00Z",
  "featureUsages": [
    {
      "featureType": "ATLAS_DATA_LAKE",
      "featureId": {
        "groupId": "32b6e34b3d91647abb20e7b8",
        "name": "string"
      }
    }
  ],
  "lastUpdatedDate": "2025-05-04T09:42:00Z",
  "servicePrincipalId": "string",
  "tenantId": "string"
}
{
  "providerName": "GCP",
  "createdDate": "2025-05-04T09:42:00Z",
  "featureUsages": [
    {
      "featureType": "ATLAS_DATA_LAKE",
      "featureId": {
        "groupId": "32b6e34b3d91647abb20e7b8",
        "name": "string"
      }
    }
  ],
  "gcpServiceAccountForAtlas": "string",
  "roleId": "32b6e34b3d91647abb20e7b8",
  "status": "IN_PROGRESS"
}
Exemplos de resposta (401)
{
  "error": 401,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Unauthorized",
  "errorCode": "NOT_ORG_GROUP_CREATOR"
}
Exemplos de resposta (403)
{
  "error": 403,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Forbidden",
  "errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
Exemplos de resposta (404)
{
  "error": 404,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
  "reason": "Not Found",
  "errorCode": "RESOURCE_NOT_FOUND"
}
Exemplos de resposta (500)
{
  "error": 500,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Internal Server Error",
  "errorCode": "UNEXPECTED_ERROR"
}