# Guia Gerenciamento do Cloud Center da Elven Platform

No **Cloud Center** da **Elven Platform**, sua *Cloud* é o elo entre sua infraestrutura e os provedores de nuvem, como AWS, Azure ou até mesmo Clouds customizadas. Aqui, conectar, gerenciar e monitorar seus ambientes se torna algo simples e intuitivo. Criado com foco em praticidade, o Cloud Center oferece uma experiência fluida para que você possa centralizar tudo em um só lugar, ganhando controle e visibilidade sobre seus recursos. Nosso objetivo é que você dedique seu tempo ao que realmente importa: criar experiências incríveis para seus usuários, enquanto nós cuidamos do restante.&#x20;

## **Acessando o Cloud Center**

* Navegue até o menu principal e clique em **Monitoring**. &#x20;
* No submenu, selecione item **Clouds**.

## **Trabalhando com Cloud Center**

No **Cloud Center** do módulo **Monitoring** da **Elven Platform**, temos um  **Listagem de Clouds** que foi projetada para oferecer uma visão clara e organizada de todas as Clouds configuradas. Aqui, você encontra todos os detalhes essenciais, como o nome da configuração e o provedor associado (AWS, Azure ou até mesmo opções personalizadas), permitindo uma identificação rápida e precisa. Para tornar a experiência ainda mais ágil, você pode usar o campo de busca e localizar facilmente Clouds específicas ou navegar entre as páginas de configurações utilizando a funcionalidade de paginação.&#x20;

Tudo foi pensado para simplificar o gerenciamento das Clouds. Com poucos cliques, você pode **editar** uma configuração existente usando o ícone de lápis ou **remover** Clouds desnecessárias com o ícone de lixeira. Precisa adicionar uma nova Cloud? O botão **‘New’** está à sua disposição, redirecionando você para a página de formulário de criação. Isso tudo foi feito para que você tenha o máximo de controle e praticidade, deixando o gerenciamento da sua infraestrutura descomplicado e eficiente.&#x20;

A **Configuração de uma Nova Cloud** no módulo **Monitoring** da **Elven Platform** tornar o processo de conectar a um provedor de nuvem rápido e intuitivo. você pode criar uma nova configuração personalizada, definindo todos os detalhes necessários para integrar provedores como AWS ou Azure.&#x20;

## **Configurando uma nova Cloud AWS**

Para criar uma **Cloud para AWS** na **Elven Platform**, você precisa preencher algumas informações essenciais. Primeiro, em **Cloud Provider**, selecione a opção, **AWS.** Depois, escolha um **Name**, que será o nome da sua Cloud dentro da plataforma. Esse nome é importante para organizar suas configurações e facilitar a gestão.

Depois, você precisará das credenciais da AWS: **Access Key ID** e **Secret Access Key**. Essas credenciais pertencem a um **Usuário Programático**, que deve ter permissões específicas para se integrar com a **Elven Platform**. Para isso, utilizamos uma **policy especial chamada 1p-agent**, que concede acesso controlado a recursos como **EC2, Lambda, monitoramento e gerenciamento de configurações**.

Com tudo preenchido, basta clicar no botão **Save**. A partir desse momento, sua Cloud estará pronta para ser usada dentro da plataforma, permitindo que você monitore e gerencie seus recursos na AWS de forma eficiente e segura.

{% embed url="<https://demo.elven.works/demo/cmd37t2jw01kauv0ipqeql382>" %}

### **Policy 1p-agent**

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances",
                "ec2:CreateVolume"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Owner": "1p-agent"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Owner",
                        "Name",
                        "Environment"
                    ]
                }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "ec2:RevokeSecurityGroupIngress",
                "ec2:RebootInstances",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:UpdateSecurityGroupRuleDescriptionsEgress",
                "ec2:TerminateInstances",
                "ec2:StartInstances",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:DeleteSecurityGroup",
                "ec2:StopInstances",
                "ec2:UpdateSecurityGroupRuleDescriptionsIngress"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:security-group/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Owner": "1p-agent"
                }
            }
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*:*:security-group/*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*::image/*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "lambda:ListVersionsByFunction",
                "lambda:GetLayerVersion",
                "logs:*",
                "lambda:GetAccountSettings",
                "lambda:GetFunctionConfiguration",
                "lambda:GetLayerVersionPolicy",
                "lambda:ListProvisionedConcurrencyConfigs",
                "rds:Describe*",
                "lambda:GetProvisionedConcurrencyConfig",
                "lambda:ListTags",
                "ec2:CreateSecurityGroup",
                "lambda:ListLayerVersions",
                "lambda:ListLayers",
                "lambda:ListCodeSigningConfigs",
                "lambda:GetAlias",
                "lambda:ListFunctions",
                "s3:*",
                "lambda:GetEventSourceMapping",
                "lambda:GetFunction",
                "ec2:CreateTags",
                "lambda:ListAliases",
                "lambda:GetFunctionUrlConfig",
                "lambda:ListFunctionUrlConfigs",
                "elasticache:Describe*",
                "lambda:GetFunctionCodeSigningConfig",
                "lambda:ListFunctionEventInvokeConfigs",
                "ec2:Describe*",
                "lambda:ListFunctionsByCodeSigningConfig",
                "cloudwatch:*",
                "lambda:GetFunctionConcurrency",
                "lambda:GetFunctionEventInvokeConfig",
                "lambda:ListEventSourceMappings",
                "lambda:GetCodeSigningConfig",
                "lambda:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor4",
            "Effect": "Allow",
            "Action": [
                "iam:get*",
                "iam:list*"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "VisualEditor5",
            "Effect": "Allow",
            "Action": "ssm:*",
            "Resource": [
                "arn:aws:s3:::*",
                "arn:aws:ssm:*:*:opsmetadata/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:parameter/*"
            ]
        }
    ]
}
```

## **Configurando uma nova Cloud Azure**

Para criar uma **Cloud da Azure** na **Elven Platform**, você precisará preencher algumas informações essenciais. Primeiro, em **Cloud Provider**, selecione a opção, **Azure**. Depois, escolha um **Name**, que será o nome da sua Cloud dentro da plataforma. Esse nome é fundamental para organizar suas configurações e facilitar o gerenciamento dos seus recursos.

Em seguida, você precisará fornecer as credenciais da **Azure**: **CLIENT\_ID**, **TENANT\_ID**, **SUBSCRIPTION\_ID** e **CLIENT\_SECRET**. Essas credenciais são vinculadas ao **Service Principal** criado na Azure, com permissões específicas para se integrar à **Elven Platform**. Elas garantirão acesso seguro aos recursos da sua **Azure Cloud**, permitindo que você monitore e gerencie serviços como máquinas virtuais, bancos de dados e outros recursos.

Com todas as informações preenchidas, basta clicar no botão **Save**. A partir desse momento, sua **Cloud Azure** estará configurada e pronta para ser usada dentro da plataforma, proporcionando uma gestão eficaz e segura dos seus recursos na **Azure**.

{% embed url="<https://demo.elven.works/demo/cmd37tce80a90z70iluxu2ycr>" %}

## **Configurando uma nova Cloud Custom**

Para criar uma **Cloud Custom** na **Elven Platform**, você precisará preencher algumas informações essenciais. Primeiro, em **Cloud Provider**, selecione a opção, **Custom**. Depois. escolha um **Name**, que será o nome da sua Cloud dentro da plataforma. Esse nome é fundamental para organizar suas configurações e facilitar o gerenciamento dos seus recursos.

{% embed url="<https://demo.elven.works/demo/cmd37sspa01jyxk0icipvfz1x>" %}

## **Glossário de Termos Técnicos**&#x20;

**Cloud Center**: Centro de gerenciamento da infraestrutura de nuvem na **Elven Platform**. É onde você pode conectar, gerenciar e monitorar seus ambientes de nuvem, como AWS, Azure ou Clouds personalizadas, centralizando todos os recursos em um único local.&#x20;

**Clouds**: Termo utilizado para descrever as configurações de provedores de nuvem na **Elven Platform**. Aqui, você pode visualizar, editar, remover ou adicionar novas Clouds para gerenciar sua infraestrutura.&#x20;

**Cloud Provider**: Provedor de nuvem ao qual a configuração se conecta, como AWS, Azure ou Clouds personalizadas. O provedor define os recursos e serviços disponíveis para sua infraestrutura.&#x20;

**Name**: Campo onde você define o nome da configuração de Cloud, ajudando a identificar e organizar as diferentes Clouds integradas à plataforma.&#x20;

**Access Key ID e Secret Access Key**: Informações de autenticação necessárias para estabelecer a conexão com o provedor de nuvem, garantindo segurança e acesso adequado aos recursos.&#x20;

**Gerenciamento de Infraestrutura de Nuvem**: Processo de conectar, configurar e monitorar os recursos de nuvem dentro da **Elven Platform**, visando um gerenciamento simplificado e eficiente da sua infraestrutura de TI.&#x20;

**Client ID**: É o identificador único de uma aplicação registrada na **Azure Active Directory (Azure AD)**. Ele é usado para autenticar a aplicação e permitir que ela acesse os recursos da Azure em nome de um usuário ou de um **Service Principal**. Esse identificador é essencial para a comunicação entre a plataforma e a Azure, permitindo a integração segura.

**Tenant ID**: É o identificador único do diretório (tenant) do Azure Active Directory (Azure AD) associado à sua **subscription** da Azure. Ele define o escopo de onde as identidades (usuários e aplicações) estão localizadas. O **Tenant ID** é necessário para associar a aplicação ao diretório correto e garantir que ela possa acessar os recursos de forma segura dentro do escopo do seu tenant.

**Subscription ID**: É o identificador único de uma **subscription** da **Azure**. Ele vincula a aplicação aos recursos e serviços disponíveis dentro dessa **subscription**. Cada **Subscription** na Azure é isolada, permitindo que você gerencie recursos de forma independente entre diferentes contas ou ambientes. O **Subscription ID** é fundamental para direcionar as ações da aplicação para a **subscription** específica.

**Client Secret**: É uma chave secreta associada à aplicação registrada no **Azure Active Directory**. Ele funciona como uma senha para autenticar o **Service Principal** e garantir que a aplicação tenha permissão para acessar os recursos definidos. O **Client Secret** deve ser mantido em segurança, pois é essencial para a comunicação segura entre a plataforma e a Azure.

**Service Principal**: É uma identidade de segurança usada por aplicações, serviços ou automações para acessar recursos dentro do **Azure**. Ele permite que a aplicação se autentique e obtenha permissões específicas, sem precisar de um usuário real.
