Tutorial: criar um IPAM e grupos usando a AWS CLI - Amazon Virtual Private Cloud

Tutorial: criar um IPAM e grupos usando a AWS CLI

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 ter mais informações, consulte Cotas para o IPAM. Se você já delegou uma conta do IPAM e criou um IPAM, você poderá ignorar as etapas 1 e 2.

Etapa 1: habilitar o IPAM na sua organização

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.

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

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.

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": [] } }
  2. 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 via Internet pública. O escopo privado é destinado a endereços IP que não serão acessados via 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

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 None será adotado. 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": [] } }
  2. 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

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 ter mais informações, consulte Provisionar CIDRs para um grupo.

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" } }
  2. 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

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": [] } }
  2. 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

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" } }
  2. 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" } ] }
  3. 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

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.

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.

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

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

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
  2. 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
  3. Desprovisione o CIDR de grupo do grupo regional.

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0da89c821626f1e4b --region us-east-1
  4. 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
  5. Excluir o IPAM

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