

# IPAM 中的 Identity and Access Management
<a name="iam-ipam"></a>

AWS 使用安全凭证来识别您的身份并向您授予对 AWS 资源的访问权限。利用 AWS Identity and Access Management (IAM) 的功能，可在不共享您的安全凭证的情况下允许其他用户、服务和应用程序完全使用或受限使用您的 AWS 资源。

本部分介绍专门为 IPAM 创建的 AWS 服务相关角色以及附加到 IPAM 服务相关角色的托管策略。有关 AWS IAM 角色和策略的更多信息，请参阅 *IAM 用户指南*中的[角色术语和概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)。

有关 VPC 的 Identity and Access Management 的更多信息，请参阅《*Amazon VPC 用户指南*》中的[适用于 Amazon VPC 的 Identity and Access Management](https://docs.aws.amazon.com/vpc/latest/userguide/security-iam.html)。

**Topics**
+ [IPAM 的服务相关角色](iam-ipam-slr.md)
+ [IPAM 的 AWS 托管策略](iam-ipam-managed-pol.md)
+ [策略示例](iam-ipam-policy-examples.md)

# IPAM 的服务相关角色
<a name="iam-ipam-slr"></a>

IPAM 使用 AWS Identity and Access Management (IAM) 服务相关角色。服务相关角色是一种独特类型的 IAM 角色。服务相关角色由 IPAM 预定义，并包含该服务代表您调用其他 AWS 服务所需的一切权限。

服务相关角色可让您更轻松地设置 IPAM，因为您不必手动添加必要的权限。IPAM 定义其服务相关角色的权限，除非另外定义，否则只有 IPAM 可以代入该角色。定义的权限包括信任策略和权限策略，而且权限策略不能附加到任何其他 IAM 实体。

## 服务相关角色权限
<a name="service-linked-role-permissions"></a>

IPAM 使用 **AWSServiceRoleForIPAM** 服务相关角色调用附加的 **AWSIPAMServiceRolePolicy** 托管策略中的操作。有关该策略中允许执行的操作的详细信息，请参阅 [IPAM 的 AWS 托管策略](iam-ipam-managed-pol.md)。

服务相关角色还附加一个允许 `ipam.amazonaws.com` 服务代入服务相关角色的 [IAM 信任策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)。

## 创建服务相关角色
<a name="create-service-linked-role"></a>

IPAM 通过在账户中担任服务相关角色、发现资源及其 CIDR 并将资源与 IPAM 集成来监控一个或多个账户中的 IP 地址使用情况。

可通过以下两种方式之一创建服务相关角色：
+ **当与 AWS Organizations 集成时**

  如果 [将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md) 使用 IPAM 控制台或使用 `enable-ipam-organization-admin-account` AWS CLI CLI 命令，则 **AWSServiceRoleForIPAM** 服务相关角色将在您的每个 AWS Organizations 成员账户中自动创建。因此，IPAM 可以发现所有成员账户中的资源。
**重要**  
要让 IPAM 代表您创建服务相关角色，请执行以下操作：  
启用 IPAM 与 AWS Organizations 集成的 AWS Organizations 管理账户必须附加允许以下操作的 IAM 策略：  
`ec2:EnableIpamOrganizationAdminAccount`
`organizations:EnableAwsServiceAccess`
`organizations:RegisterDelegatedAdministrator`
`iam:CreateServiceLinkedRole`
IPAM 账户必须附加允许 `iam:CreateServiceLinkedRole` 操作的 IAM 策略。
+ **当您使用单个 AWS 账户创建 IPAM 时**

  如果[将 IPAM 用于单个账户](enable-single-user-ipam.md)，则当您将 IPAM 创建为账户时，将自动创建 **AWSServiceRoleForIPAM** 服务相关角色。
**重要**  
如果您将 IPAM 与单个 AWS 账户一起使用，则在创建 IPAM 之前，必须确保您使用的 AWS 账户附加了允许 `iam:CreateServiceLinkedRole` 操作的 IAM 策略。创建 IPAM 时，将自动创建 **AWSServiceRoleForIPAM** 服务相关角色。有关管理 IAM 策略的更多信息，请参阅《*IAM 用户指南*》中的[编辑服务相关角色描述](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-service-linked-role.html#edit-service-linked-role-iam-console)。

## 编辑服务相关角色
<a name="edit-service-linked-role"></a>

您无法编辑 **AWSServiceRoleForIPAM** 服务相关角色。

## 删除服务相关角色
<a name="delete-service-linked-role"></a>

如果您不再需要使用 IPAM，我们建议您删除 **AWSServiceRoleForIPAM** 服务相关角色。

**注意**  
只有删除您的AWS账户中的所有 IPAM 资源之后，您才可以删除服务相关角色。这可确保您不会无意中删除 IPAM 的监控功能。

请按照以下步骤使用 AWS CLI 删除服务相关角色：

1. 使用 [deprovision-ipam-pool-cidr](https://docs.aws.amazon.com/cli/latest/reference/ec2/deprovision-ipam-pool-cidr.html) 和 [delete-ipam](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-ipam.html) 删除 IPAM 资源。有关更多信息，请参阅 [从池中取消预置 CIDR](depro-pool-cidr-ipam.md) 和 [删除 IPAM](delete-ipam.md)。

1. 使用 [disable-ipam-organization-admin-account](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-ipam-organization-admin-account.html) 禁用 IPAM 账户。

1. 使用 `--service-principal ipam.amazonaws.com` 选项通过 [disable-aws-service-access](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/servicecatalog/disable-aws-organizations-access.html) 禁用 IPAM 服务。

1. 删除服务相关角色：[delete-service-linked-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-service-linked-role.html)。删除服务相关角色时，IPAM 托管策略也将删除。有关更多信息，请参阅《IAM 用户指南》**中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr)。

# IPAM 的 AWS 托管策略
<a name="iam-ipam-managed-pol"></a>

如果将 IPAM 与单个 AWS 账户一起使用，并且创建了 IPAM，则会在 IAM 账户中自动创建 **AWSIPAMServiceRolePolicy** 托管策略，并将其附加到 **AWSServiceRoleForIPAM** [服务相关角色](iam-ipam-slr.md)。

如果您启用 IPAM 与 AWS Organizations 的集成，将自动在您的 IAM 账户和每个 AWS Organizations 成员账户中创建 **AWSIPAMServiceRolePolicy** 托管策略，并且该托管策略将附加到 **AWSServiceRoleForIPAM** 服务相关角色。

此托管策略允许 IPAM 执行以下操作：
+ 在您的 AWS 企业的所有成员中监控与联网资源关联的 CIDR。
+ 在 Amazon CloudWatch 中存储与 IPAM 相关的指标，例如 IPAM 池中可用的 IP 地址空间以及符合分配规则的资源 CIDR 数量。
+ 修改和读取托管前缀列表。

以下示例显示所创建托管策略的详细信息。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "IPAMDiscoveryDescribeActions",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAddresses",
                "ec2:DescribeByoipCidrs",
                "ec2:DescribeIpv6Pools",
                "ec2:DescribeManagedPrefixLists",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribePublicIpv4Pools",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSecurityGroupRules",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DescribeVpnConnections",
                "ec2:GetIpamDiscoveredAccounts",
                "ec2:GetIpamDiscoveredPublicAddresses",
                "ec2:GetIpamDiscoveredResourceCidrs",
                "ec2:GetManagedPrefixListEntries",
                "ec2:ModifyManagedPrefixList",
                "globalaccelerator:ListAccelerators",
                "globalaccelerator:ListByoipCidrs",
                "organizations:DescribeAccount",
                "organizations:DescribeOrganization",
                "organizations:ListAccounts",
                "organizations:ListDelegatedAdministrators",
                "organizations:ListChildren",
                "organizations:ListParents",
                "organizations:DescribeOrganizationalUnit"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CloudWatchMetricsPublishActions",
            "Effect": "Allow",
            "Action": "cloudwatch:PutMetricData",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": "AWS/IPAM"
                }
            }
        }
    ]
}
```

------

前面示例中的第一条语句使 IPAM 能够监控单个 AWS 账户或 AWS Organization 成员使用的 CIDR。

上述示例中的第二条语句使用 `cloudwatch:PutMetricData` 条件键允许 IPAM 将 IPAM 指标存储在您的 `AWS/IPAM` [Amazon CloudWatch 命名空间中](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)。这些指标被 AWS 管理控制台用于显示有关 IPAM 池和范围中的分配的数据。有关更多信息，请参阅 [使用 IPAM 控制面板监控 CIDR 使用情况](monitor-cidr-usage-ipam.md)。

## 对 AWS 托管策略的更新
<a name="iam-ipam-managed-pol-updates"></a>

查看有关 IPAM 的 AWS 托管策略更新的详细信息（从该服务开始跟踪这些更改开始）。


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  AWSIPAMServiceRolePolicy  |  在 AWSIPAMServiceRolePolicy 托管式策略（ec2:ModifyManagedPrefixList、ec2:DescribeManagedPrefixLists 和 ec2:GetManagedPrefixListEntries）中添加了操作，以使 IPAM 能够修改和读取托管前缀列表。  |  2025 年 10 月 31 日  | 
|  AWSIPAMServiceRolePolicy  |  向 AWSIPAMServiceRolePolicy 托管策略（`organizations:ListChildren`、`organizations:ListParents` 和 `organizations:DescribeOrganizationalUnit`）添加了操作，使 IPAM 能够获取 AWS Organizations 中组织单元 (OU) 的详细信息，以便客户可以在 OU 级别使用 IPAM。  | 2024 年 11 月 21 日 | 
|  AWSIPAMServiceRolePolicy  |  在 AWSIPAMServiceRolePolicy 托管策略（`ec2:GetIpamDiscoveredPublicAddresses`）中添加了操作，以使 IPAM 能够在资源发现期间获取公有 IP 地址。  | 2023 年 11 月 13 日 | 
|  AWSIPAMServiceRolePolicy  | 在 AWSIPAMServiceRolePolicy 托管策略（ec2:DescribeAccountAttributes、ec2:DescribeNetworkInterfaces、ec2:DescribeSecurityGroups、ec2:DescribeSecurityGroupRules、ec2:DescribeVpnConnections、globalaccelerator:ListAccelerators和globalaccelerator:ListByoipCidrs）中添加了操作 ，使 IPAM 能够在资源发现期间获取公有 IP 地址。 | 2023 年 11 月 1 日 | 
|  AWSIPAMServiceRolePolicy  |  向 AWSIPAMServiceRolePolicy 托管式策略添加了两个操作（`ec2:GetIpamDiscoveredAccounts` 和 `ec2:GetIpamDiscoveredResourceCidrs`），以便 IPAM 在资源发现期间获取 AWS 账户和监控资源 CIDR。  | 2023 年 1 月 25 日 | 
| IPAM 已开启跟踪更改 |  IPAM 为其 AWS 托管策略开启了跟踪更改。  | 2021 年 12 月 2 日 | 

# 策略示例
<a name="iam-ipam-policy-examples"></a>

这一部分中的示例策略包含完全使用 IPAM 时的所有相关 AWS Identity and Access Management（IAM）操作。根据您使用 IPAM 的方式，您可能不需要包含所有 IAM 操作。要获得使用 IPAM 控制台的完整体验，您可能需要包含 AWS Organizations、AWS Resource Access Manager (AWS RAM) 和 Amazon CloudWatch 等服务的额外 IAM 操作。

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AssociateIpamByoasn",
                "ec2:DeprovisionIpamByoasn",
                "ec2:DescribeIpamByoasn",                
                "ec2:DisassociateIpamByoasn",
                "ec2:ProvisionIpamByoasn",
                "ec2:CreateIpam",
                "ec2:DescribeIpams",
                "ec2:ModifyIpam",
                "ec2:DeleteIpam",
                "ec2:CreateIpamScope",
                "ec2:DescribeIpamScopes",
                "ec2:ModifyIpamScope",
                "ec2:DeleteIpamScope",
                "ec2:CreateIpamPool",
                "ec2:DescribeIpamPools",
                "ec2:ModifyIpamPool",
                "ec2:DeleteIpamPool",
                "ec2:ProvisionIpamPoolCidr",
                "ec2:GetIpamPoolCidrs",
                "ec2:DeprovisionIpamPoolCidr",
                "ec2:AllocateIpamPoolCidr",
                "ec2:GetIpamPoolAllocations",
                "ec2:ReleaseIpamPoolAllocation",
                "ec2:CreateIpamResourceDiscovery",
                "ec2:DescribeIpamResourceDiscoveries",
                "ec2:ModifyIpamResourceDiscovery",
                "ec2:DeleteIpamResourceDiscovery",
                "ec2:AssociateIpamResourceDiscovery",
                "ec2:DescribeIpamResourceDiscoveryAssociations",
                "ec2:DisassociateIpamResourceDiscovery",
                "ec2:GetIpamResourceCidrs",
                "ec2:ModifyIpamResourceCidr",
                "ec2:GetIpamAddressHistory",
                "ec2:GetIpamDiscoveredResourceCidrs",
                "ec2:GetIpamDiscoveredAccounts",
                "ec2:GetIpamDiscoveredPublicAddresses" 
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/ipam.amazonaws.com/AWSServiceRoleForIPAM",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "ipam.amazonaws.com"
                }
            }
        }
    ]
}
```

------