

# Tutorial: criar um IPAM e grupos usando a AWS CLI
<a name="tutorials-create-vpc-ipam"></a>

Siga as etapas neste tutorial para usar a AWS CLI para criar um IPAM, criar grupos de endereço IP e alocar uma VPC com um CIDR em um grupo do IPAM.

O exemplo a seguir mostra a hierarquia da estrutura de grupos que você criará seguindo as etapas nesta seção.
+ IPAM operando na região da AWS 1, região da AWS 2
  + Escopo privado
    + Grupo de nível superior
      + Grupo regional na região da AWS 2
        + Grupo de desenvolvimento
          + Alocação para uma VPC

**nota**  
Nesta seção, você cria um IPAM. Por padrão, é possível criar apenas um IPAM. Para obter mais informações, consulte [Cotas para o IPAM](quotas-ipam.md). Se você já delegou uma conta do IPAM e criou um IPAM, você poderá ignorar as etapas 1 e 2.

**Topics**
+ [Etapa 1: habilitar o IPAM na sua organização](#cli-tut-enable-org-ipam)
+ [Etapa 2: criar um IPAM](#cli-tut-create-ipam)
+ [Etapa 3: criar um grupo de endereços IPv4](#cli-tut-create-top-ipam)
+ [Etapa 4: provisionar um CIDR para o grupo de nível superior](#cli-tut-provision-cidr-ipam)
+ [Etapa 5. Criar um grupo regional com o CIDR originado do grupo de nível superior](#cli-tut-create-reg-ipam)
+ [Etapa 6: provisionar um CIDR para o grupo regional](#cli-tut-assign-cidr-reg-pool)
+ [Etapa 7. Criar um compartilhamento do RAM para habilitar atribuições de IP nas contas](#cli-tut-create-ram-share-ipam)
+ [Etapa 8. Crie uma VPC](#cli-tut-create-vpc-ipam)
+ [Etapa 9. Limpeza](#cli-tut-cleanup-ipam)

## Etapa 1: habilitar o IPAM na sua organização
<a name="cli-tut-enable-org-ipam"></a>

Esta etapa é opcional. Conclua esta etapa para habilitar o IPAM em sua organização e configurar o IPAM delegado usando a AWS CLI. Para obter mais informações sobre a função da conta do IPAM, consulte [Integrar o IPAM a contas em uma organização da AWS Organizations](enable-integ-ipam.md).

Essa solicitação deve ser feita a partir de uma conta de gerenciamento do AWS Organizations. Ao executar o seguinte comando, certifique-se de estar usando uma função com uma política do IAM que permita as seguintes ações:
+ `ec2:EnableIpamOrganizationAdminAccount`
+ `organizations:EnableAwsServiceAccess`
+ `organizations:RegisterDelegatedAdministrator`
+ `iam:CreateServiceLinkedRole`

```
aws ec2 enable-ipam-organization-admin-account --region us-east-1 --delegated-admin-account-id 11111111111
```

Você deverá ver a saída a seguir, indicando que a habilitação foi bem-sucedida. 

```
{
    "Success": true
}
```

## Etapa 2: criar um IPAM
<a name="cli-tut-create-ipam"></a>

Siga as etapas nesta seção para criar um IPAM e visualizar informações adicionais sobre os escopos criados. Você usará esse IPAM ao criar grupos e provisionar intervalos de endereços IP para esses grupos em etapas posteriores. 

**nota**  
A opção regiões operacionais determina para quais regiões da AWS os grupos do IPAM podem ser usados. Para ver mais informações sobre as regiões operacionais, consulte [Criar um IPAM](create-ipam.md). 

**Para criar um IPAM usando a AWS CLI**

1. Execute o comando a seguir para criar uma instância do IPAM.

   ```
   aws ec2 create-ipam --description my-ipam --region us-east-1 --operating-regions RegionName=us-west-2
   ```

   Quando você cria um IPAM, a AWS faz automaticamente o seguinte:
   + Retorna um ID de recurso exclusivo globalmente (`IpamId`) para o IPAM.
   + Cria um escopo público padrão (`PublicDefaultScopeId`) e um escopo privado padrão (`PrivateDefaultScopeId`).

   ```
   {                                                                                      
       "Ipam": {
           "OwnerId": "123456789012",
           "IpamId": "ipam-0de83dba6694560a9",
           "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
           "PublicDefaultScopeId": "ipam-scope-02a24107598e982c5",
           "PrivateDefaultScopeId": "ipam-scope-065e7dfe880df679c",
           "ScopeCount": 2,
           "Description": "my-ipam",
           "OperatingRegions": [
               {
                   "RegionName": "us-west-2"
               },
               {
                   "RegionName": "us-east-1"
               }
           ],
           "Tags": []
       }
   }
   ```

1. Execute o comando a seguir para visualizar informações adicionais relacionadas aos escopos. O escopo público é destinado a endereços IP que serão acessados por meio da Internet pública. O escopo privado é destinado a endereços IP que não serão acessados por meio da Internet pública.

   ```
   aws ec2 describe-ipam-scopes --region us-east-1
   ```

   Na saída, você vê os escopos disponíveis. Você usará o ID do escopo privado na próxima etapa.

   ```
   {
       "IpamScopes": [
           {
               "OwnerId": "123456789012",
               "IpamScopeId": "ipam-scope-02a24107598e982c5",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-02a24107598e982c5",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "IpamScopeType": "public",
               "IsDefault": true,
               "PoolCount": 0
           },
           {
               "OwnerId": "123456789012",
               "IpamScopeId": "ipam-scope-065e7dfe880df679c",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "IpamScopeType": "private",
               "IsDefault": true,
               "PoolCount": 0
           }
       ]
   }
   ```

## Etapa 3: criar um grupo de endereços IPv4
<a name="cli-tut-create-top-ipam"></a>

Siga as etapas nesta seção para criar um grupo de endereços IPv4.

**Importante**  
Você não usará a opção `--locale` neste grupo de nível superior. Você definirá a opção de localidade no grupo regional. A localidade é a região da AWS na qual você deseja que um grupo esteja disponível para alocações de CIDR. Como a localidade não está definida no grupo de nível superior, o padrão será adotado `None`. Se um grupo tiver uma localidade `None`, não estará disponível para recursos da VPC em nenhuma região da AWS. Você só pode alocar manualmente o espaço de endereço IP no grupo para reservar espaço.

**Para criar um grupo de endereços IPv4 para todos os seus recursos da AWS usando a AWS CLI**

1. Execute o comando a seguir para criar um grupo de endereços IPv4. Use o ID do escopo privado do IPAM criado na etapa anterior.

   ```
   aws ec2 create-ipam-pool --ipam-scope-id ipam-scope-065e7dfe880df679c --description "top-level-pool" --address-family ipv4
   ```

   Na saída, você verá um estado de `create-in-progress` para o grupo.

   ```
   {
       "IpamPool": {
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-0008f25d7187a08d9",
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0008f25d7187a08d9",
           "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
           "IpamScopeType": "private",
           "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
           "Locale": "None",
           "PoolDepth": 1,
           "State": "create-in-progress",
           "Description": "top-level-pool",
           "AutoImport": false,
           "AddressFamily": "ipv4",
           "Tags": []
       }
   }
   ```

1. Execute o comando a seguir até ver um estado `create-complete` na saída.

   ```
   aws ec2 describe-ipam-pools
   ```

   O exemplo de saída a seguir mostra o estado correto.

   ```
   {
       "IpamPools": [
           {
               "OwnerId": "123456789012",
               "IpamPoolId": "ipam-pool-0008f25d7187a08d9",
               "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0008f25d7187a08d9",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
               "IpamScopeType": "private",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "Locale": "None",
               "PoolDepth": 1,
               "State": "create-complete",
               "Description": "top-level-pool",
               "AutoImport": false,
               "AddressFamily": "ipv4"
           }
       ]
   }
   ```

## Etapa 4: provisionar um CIDR para o grupo de nível superior
<a name="cli-tut-provision-cidr-ipam"></a>

Siga as etapas desta seção para provisionar um CIDR para o grupo de nível superior e, em seguida, verificar se o CIDR está provisionado. Para obter mais informações, consulte [Provisionar CIDRs para um grupo](prov-cidr-ipam.md).

**Para provisionar um bloco CIDR para o grupo usando o AWS CLI**

1. Execute o comando a seguir para provisionar o CIDR.

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0008f25d7187a08d9 --cidr 10.0.0.0/8
   ```

   Na saída, você pode verificar o estado do provisionamento.

   ```
   {
       "IpamPoolCidr": {                     
           "Cidr": "10.0.0.0/8",        
           "State": "pending-provision"      
       }                                     
   }
   ```

1. Execute o comando a seguir até ver um estado `provisioned` na saída.

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0008f25d7187a08d9
   ```

   O exemplo de saída a seguir mostra o estado correto.

   ```
   {
       "IpamPoolCidrs": [                     
           {                                  
               "Cidr": "10.0.0.0/8",     
               "State": "provisioned"         
           }                                  
       ]                                      
   }
   ```

## Etapa 5. Criar um grupo regional com o CIDR originado do grupo de nível superior
<a name="cli-tut-create-reg-ipam"></a>

Ao criar um grupo do IPAM, o grupo pertence à região da AWS do IPAM por padrão. Quando você cria uma VPC, o grupo do qual a VPC extrai deverá estar na mesma região da VPC. Você pode usar a opção `--locale` ao criar um grupo para disponibilizá-lo para serviços em uma região diferente da região do IPAM. Siga as etapas nesta seção para criar um grupo regional em outra localidade.

**Para criar um grupo com um CIDR originado do grupo anterior usando a AWS CLI**

1. Execute o comando a seguir para criar o grupo e inserir espaço com um CIDR disponível conhecido do grupo anterior.

   ```
   aws ec2 create-ipam-pool --description "regional--pool" --region us-east-1 --ipam-scope-id ipam-scope-065e7dfe880df679c --source-ipam-pool-id 
   ipam-pool-0008f25d7187a08d9 --locale us-west-2 --address-family ipv4
   ```

   Na saída, você verá o ID do grupo criado. Você precisará desse ID na próxima etapa.

   ```
   {
       "IpamPool": {
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-0da89c821626f1e4b",
           "SourceIpamPoolId": "ipam-pool-0008f25d7187a08d9",
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0da89c821626f1e4b",
           "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
           "IpamScopeType": "private",
           "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
           "Locale": "us-west-2",
           "PoolDepth": 2,
           "State": "create-in-progress",
           "Description": "regional--pool",
           "AutoImport": false,
           "AddressFamily": "ipv4",
           "Tags": []
       }
   }
   ```

1. Execute o comando a seguir até ver um estado `create-complete` na saída.

   ```
   aws ec2 describe-ipam-pools
   ```

   Na saída, você vê os grupos que tem no IPAM. Neste tutorial, criamos um grupo regional e um de nível superior. Você verá ambos.

   ```
   {
       "IpamPools": [
           {
               "OwnerId": "123456789012",
               "IpamPoolId": "ipam-pool-0008f25d7187a08d9",
               "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0008f25d7187a08d9",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
               "IpamScopeType": "private",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "Locale": "None",
               "PoolDepth": 1,
               "State": "create-complete",
               "Description": "top-level-pool",
               "AutoImport": false,
               "AddressFamily": "ipv4"
           },
           {
               "OwnerId": "123456789012",
               "IpamPoolId": "ipam-pool-0da89c821626f1e4b",
               "SourceIpamPoolId": "ipam-pool-0008f25d7187a08d9",
               "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0da89c821626f1e4b",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
               "IpamScopeType": "private",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "Locale": "us-west-2",
               "PoolDepth": 2,
               "State": "create-complete",
               "Description": "regional--pool",
               "AutoImport": false,
               "AddressFamily": "ipv4"
           }
       ]
   }
   ```

## Etapa 6: provisionar um CIDR para o grupo regional
<a name="cli-tut-assign-cidr-reg-pool"></a>

Siga as etapas desta seção para atribuir um bloco CIDR ao grupo e validar se ele foi provisionado com sucesso.

**Para atribuir um bloco CIDR ao grupo regional usando a AWS CLI**

1. Execute o comando a seguir para provisionar o CIDR.

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0da89c821626f1e4b --cidr 10.0.0.0/16
   ```

   Na saída, você verá o estado do grupo.

   ```
   {
       "IpamPoolCidr": {                     
           "Cidr": "10.0.0.0/16",       
           "State": "pending-provision"      
       }                                     
   }
   ```

1. Execute o comando a seguir até ver um estado `provisioned` na saída.

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0da89c821626f1e4b
   ```

   O exemplo de saída a seguir mostra o estado correto.

   ```
   {
       "IpamPoolCidrs": [                     
           {                                  
               "Cidr": "10.0.0.0/16",     
               "State": "provisioned"         
           }                                  
       ]                                      
   }
   ```

1. Execute o comando a seguir para consultar o grupo de nível superior e visualizar as alocações. O grupo regional é considerado uma alocação dentro do grupo de nível superior.

   ```
   aws ec2 get-ipam-pool-allocations --region us-east-1 --ipam-pool-id ipam-pool-0008f25d7187a08d9
   ```

   Na saída, você vê o grupo regional como uma alocação no grupo de nível superior.

   ```
   {
       "IpamPoolAllocations": [
           {
               "Cidr": "10.0.0.0/16",
               "IpamPoolAllocationId": "ipam-pool-alloc-fbd525f6c2bf4e77a75690fc2d93479a",
               "ResourceId": "ipam-pool-0da89c821626f1e4b",
               "ResourceType": "ipam-pool",
               "ResourceOwner": "123456789012"
           }
       ]
   }
   ```

## Etapa 7. Criar um compartilhamento do RAM para habilitar atribuições de IP nas contas
<a name="cli-tut-create-ram-share-ipam"></a>

Esta etapa é opcional. Você poderá concluir esta etapa somente se tiver concluído [Integrar o IPAM a contas em uma organização da AWS Organizations](enable-integ-ipam.md).

Ao criar um compartilhamento do AWS RAM do grupo do IPAM, ele habilita atribuições de IP entre contas. O compartilhamento do RAM só está disponível em sua região da AWS inicial. Observe que você cria esse compartilhamento na mesma região que o IPAM, não na região local do grupo. Todas as operações administrativas em recursos do IPAM são feitas por meio da região inicial do IPAM. O exemplo neste tutorial cria um único compartilhamento para um único grupo, mas você pode adicionar vários grupos a um único compartilhamento. Para obter mais informações, incluindo uma explicação das opções que você deve inserir, consulte [Compartilhar um grupo do IPAM usando o AWS RAM](share-pool-ipam.md).

Execute os comandos a seguir para criar um compartilhamento de recursos.

```
aws ram create-resource-share --region us-east-1 --name pool_share --resource-arns arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0dec9695bca83e606 --principals 123456
```

A saída mostra que o grupo foi criado.

```
{
    "resourceShare": {
        "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/3ab63985-99d9-1cd2-7d24-75e93EXAMPLE",
        "name": "pool_share",
        "owningAccountId": "123456789012",
        "allowExternalPrincipals": false,
        "status": "ACTIVE",
        "creationTime": 1565295733.282,
        "lastUpdatedTime": 1565295733.282
    }
}
```

## Etapa 8. Crie uma VPC
<a name="cli-tut-create-vpc-ipam"></a>

Execute o comando a seguir para criar uma VPC e atribuir um bloco CIDR à VPC a partir do grupo em seu IPAM recém-criado.

```
aws ec2 create-vpc --region us-east-1 --ipv4-ipam-pool-id ipam-pool-04111dca0d960186e --cidr-block 10.0.0.0/24
```

A saída mostra que a VPC foi criada.

```
{
    "Vpc": {
        "CidrBlock": "10.0.0.0/24",
        "DhcpOptionsId": "dopt-19edf471",
        "State": "pending",
        "VpcId": "vpc-0983f3c454f3d8be5",
        "OwnerId": "123456789012",   
        "InstanceTenancy": "default",
        "Ipv6CidrBlockAssociationSet": [],
        "CidrBlockAssociationSet": [
            {
                "AssociationId": "vpc-cidr-assoc-00b24cc1c2EXAMPLE",
                "CidrBlock": "10.0.0.0/24",
                "CidrBlockState": {
                    "State": "associated"
                }
            }
        ],
        "IsDefault": false
    }
}
```

## Etapa 9. Limpeza
<a name="cli-tut-cleanup-ipam"></a>

Siga as etapas nesta seção para excluir os recursos do IPAM que você criou neste tutorial.

1. Exclua a VPC.

   ```
   aws ec2 delete-vpc --vpc-id vpc-0983f3c454f3d8be5
   ```

1. Exclua o compartilhamento de RAM do grupo do IPAM.

   ```
   aws ram delete-resource-share --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/3ab63985-99d9-1cd2-7d24-75e93EXAMPLE
   ```

1. Desprovisione o CIDR de grupo do grupo regional.

   ```
    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0da89c821626f1e4b --region us-east-1 
   ```

1. Desprovisione o CIDR de grupo do grupo de nível superior.

   ```
    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0008f25d7187a08d9 --region us-east-1
   ```

1. Excluir o IPAM

   ```
   aws ec2 delete-ipam --region us-east-1
   ```