教學課程:使用 AWS CLI 建立 IPAM 和集區
請按照本教學課程中的步驟,使用 AWS CLI 建立 IPAM、建立 IP 地址集區,以及使用 IPAM 集區的 CIDR 配置 VPC。
只要依照本節中的步驟,即可建立如下的集區結構階層範例:
-
IPAM 執行於 AWS 區域 1、AWS 區域 2
-
私有範圍
-
最上層集區
-
AWS 區域 2 中的區域集區
-
開發集區
-
VPC 的配置
-
-
-
-
-
注意
在本節中,您會建立 IPAM。預設情況下,只能建立一個 IPAM。如需詳細資訊,請參閱IPAM 的配額。如果已委派 IPAM 帳戶並建立 IPAM,則可略過步驟 1 和 2。
目錄
步驟 1:在您的組織中啟用 IPAM
此為選擇性步驟。完成此步驟可在您的組織中啟用 IPAM,並使用 AWS CLI 來設定您的委派 IPAM。如需有關 IPAM 帳戶角色的詳細資訊,請參閱 將 IPAM 與 AWS Organizations 中的帳戶整合。
只有 AWS Organizations 管理帳戶才能提出此請求。執行下列命令時,請務必使用具備 IAM 政策的角色,如此才能執行下列動作:
ec2:EnableIpamOrganizationAdminAccount
organizations:EnableAwsServiceAccess
organizations:RegisterDelegatedAdministrator
iam:CreateServiceLinkedRole
aws ec2 enable-ipam-organization-admin-account --region
us-east-1
--delegated-admin-account-id11111111111
您應會看到表示啟用成功的以下輸出結果。
{
"Success": true
}
步驟 2:建立 IPAM
請按照本節中的步驟來建立 IPAM,並檢視與建立之範圍有關的更多資訊。在稍後的步驟中為這些集區建立集區並佈建 IP 地址範圍時,將會用到此 IPAM。
注意
作業區域選項可決定 IPAM 集區用於哪些 AWS 區域。如需有關作業區域的詳細資訊,請參閱 建立 IPAM。
使用 AWS CLI 建立 IPAM
-
執行下列命令以建立 IPAM 執行個體。
aws ec2 create-ipam --description
my-ipam
--regionus-east-1
--operating-regionsRegionName=us-west-2
建立 IPAM 時,AWS 會自動執行以下操作:
傳回 IPAM 的全域唯一資源 ID (
IpamId
)。建立預設的公有範圍 (
PublicDefaultScopeId
) 和預設的私有範圍 (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": [] } }
-
執行下列命令以檢視與範圍相關的更多資訊。公有範圍專用於要透過公有網際網路存取的 IP 地址。私有範圍專用於不透過公有網際網路存取的 IP 地址。
aws ec2 describe-ipam-scopes --region
us-east-1
輸出結果會顯示可用的範圍。您將在下一個步驟中用到私有範圍 ID。
{ "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 } ] }
步驟 3:建立 IPv4 地址集區
請依照本節中的步驟來建立 IPv4 地址集區。
重要
您不會在此頂層集區使用 --locale
選項。您稍後會設定區域集區上的地區設定選項。地區設定為您希望集區可供 CIDR 分配使用的 AWS 區域。由於未在頂層集區上設定地區設定,地區設定會預設為 None
。如果集區的地區設定為 None
,則該集區不可用於任何 AWS 區域的 VPC 資源。您只能在集區中手動分配 IP 地址空間以保留空間。
使用 AWS CLI 為您的所有 AWS 資源建立 IPv4 地址集區
-
執行下列命令以建立 IPv4 地址集區。使用您在上一個步驟中建立的 IPAM 私有範圍 ID。
aws ec2 create-ipam-pool --ipam-scope-id
ipam-scope-065e7dfe880df679c
--description"top-level-pool"
--address-familyipv4
輸出結果會顯示集區的
create-in-progress
狀態。{ "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": [] } }
-
執行下列命令,直到輸出結果顯示
create-complete
的狀態為止。aws ec2 describe-ipam-pools
下例的輸出結果顯示正確狀態。
{ "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" } ] }
步驟 4:在最上層集區佈建 CIDR
依照本節中的步驟來佈建最上層集區的 CIDR,然後確認 CIDR 已佈建。如需詳細資訊,請參閱佈建集區的 CIDR。
使用 AWS CLI 在集區中佈建 CIDR 區塊
-
執行下列命令以佈建 CIDR。
aws ec2 provision-ipam-pool-cidr --region
us-east-1
--ipam-pool-idipam-pool-0008f25d7187a08d9
--cidr10.0.0.0/8
您可在輸出結果中確認佈建的狀態。
{ "IpamPoolCidr": { "Cidr": "10.0.0.0/8", "State": "pending-provision" } }
-
執行下列命令,直到輸出結果顯示
provisioned
的狀態為止。aws ec2 get-ipam-pool-cidrs --region
us-east-1
--ipam-pool-idipam-pool-0008f25d7187a08d9
下例的輸出結果顯示正確狀態。
{ "IpamPoolCidrs": [ { "Cidr": "10.0.0.0/8", "State": "provisioned" } ] }
步驟 5. 利用最上層集區中的 CIDR 建立區域集區
當您建立 IPAM 集區時,在預設情況下,集區屬於該 IPAM 的 AWS 區域。用來建立 VPC 的集區需與該 VPC 位於相同的區域。建立集區時若使用 --locale
選項,則 IPAM 區域以外之其他區域內的服務可使用該集區。請依照本節中的步驟,以其他地區設定建立區域集區。
使用 AWS CLI 建立包含先前集區之 CIDR 的集區
-
執行下列命令以建立集區並插入空間,該空間包含先前集區的已知可用 CIDR。
aws ec2 create-ipam-pool --description
"regional--pool"
--regionus-east-1
--ipam-scope-idipam-scope-065e7dfe880df679c
--source-ipam-pool-idipam-pool-0008f25d7187a08d9
--localeus-west-2
--address-familyipv4
輸出結果會顯示您所建立之集區的 ID。下一個步驟需要用到此 ID。
{ "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": [] } }
-
執行下列命令,直到輸出結果顯示
create-complete
的狀態為止。aws ec2 describe-ipam-pools
您會在輸出結果中看到 IPAM 內的集區。在本教學課程中,我們建立了最上層和區域集區,所以這兩種集區您都會看到。
{ "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" } ] }
步驟 6:在區域集區中佈建 CIDR
依照本節中的步驟將 CIDR 區塊指派給集區,並確認佈建成功。
使用 AWS CLI 將 CIDR 區塊指派給區域集區
-
執行下列命令以佈建 CIDR。
aws ec2 provision-ipam-pool-cidr --region
us-east-1
--ipam-pool-idipam-pool-0da89c821626f1e4b
--cidr10.0.0.0/16
輸出結果會顯示集區的狀態。
{ "IpamPoolCidr": { "Cidr": "10.0.0.0/16", "State": "pending-provision" } }
-
執行下列命令,直到輸出結果顯示
provisioned
的狀態為止。aws ec2 get-ipam-pool-cidrs --region
us-east-1
--ipam-pool-idipam-pool-0da89c821626f1e4b
下例的輸出結果顯示正確狀態。
{ "IpamPoolCidrs": [ { "Cidr": "10.0.0.0/16", "State": "provisioned" } ] }
-
執行下列命令以查詢最上層集區,藉此檢視配置。區域集區會被視為是最上層集區內的配置。
aws ec2 get-ipam-pool-allocations --region
us-east-1
--ipam-pool-idipam-pool-0008f25d7187a08d9
輸出結果會顯示區域集區配置於最上層集區中。
{ "IpamPoolAllocations": [ { "Cidr": "10.0.0.0/16", "IpamPoolAllocationId": "ipam-pool-alloc-fbd525f6c2bf4e77a75690fc2d93479a", "ResourceId": "ipam-pool-0da89c821626f1e4b", "ResourceType": "ipam-pool", "ResourceOwner": "123456789012" } ] }
步驟 7. 建立 RAM 共用以啟用跨帳戶的 IP 指派
此為選用步驟。必須先完成 將 IPAM 與 AWS Organizations 中的帳戶整合 才能完成此步驟。
當您建立 IPAM 集區 AWS RAM 共用時,它會啟用跨帳戶的 IP 指派。RAM 共用功能僅適用於本地 AWS 區域。請注意,此共用是在 IPAM 所在的區域中建立,而不是在集區的本機區域中建立。IPAM 資源的一切管理作業都是透過 IPAM 的主區域進行。本教學課程中的範例會為單一集區建立單一共用,但您可在單一共用中新增多個集區。如需詳細資訊 (包括必須輸入之選項的相關說明),請參閱 透過 AWS RAM 共用 IPAM 集區。
執行下列命令以建立資源共用。
aws ram create-resource-share --region
us-east-1
--namepool_share
--resource-arnsarn:aws:ec2::123456789012:ipam-pool/ipam-pool-0dec9695bca83e606
--principals123456
輸出結果會顯示集區已建立。
{
"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
}
}
步驟 8. 建立 VPC
執行下列命令以建立 VPC,並將新建 IPAM 集區的 CIDR 區塊指派給 VPC。
aws ec2 create-vpc --region
us-east-1
--ipv4-ipam-pool-idipam-pool-04111dca0d960186e
--cidr-block10.0.0.0/24
輸出結果會顯示 VPC 已建立。
{
"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
}
}
步驟 9. 清除
請依照本節中的步驟刪除您在本教學課程中建立的 IPAM 資源。
-
刪除 VPC。
aws ec2 delete-vpc --vpc-id
vpc-0983f3c454f3d8be5
-
刪除 IPAM 集區 RAM 共用。
aws ram delete-resource-share --resource-share-arn
arn:aws:ram:us-west-2:123456789012:resource-share/3ab63985-99d9-1cd2-7d24-75e93EXAMPLE
-
解除佈建區域集區的集區 CIDR。
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id
ipam-pool-0da89c821626f1e4b
--regionus-east-1
-
解除佈建最上層集區的集區 CIDR。
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id
ipam-pool-0008f25d7187a08d9
--regionus-east-1
-
刪除 IPAM
aws ec2 delete-ipam --region
us-east-1