本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建和使用客户管理权限Amazon RAM
Amazon Resource Access Manager(Amazon RAM) 为您可以共享的每种资源类型提供至少一个Amazon托管权限。但是,这些托管权限可能无法为您的共享用例提供最低权限访问权限。当提供的Amazon托管权限之一不起作用时,您可以创建自己的客户管理权限。
客户管理权限是您创建和维护的托管权限,您可以通过精确指定在哪些条件下共享资源时可以执行哪些操作,来创建和维护这些权限Amazon RAM。例如,您想要限制您的 Amazon VPC IP 地址管理器 (IPAM) 池的读取访问权限,这可以帮助您大规模管理 IP 地址。您可以为开发人员创建客户管理权限以分配 IP 地址,但不能查看其他开发者账户分配的 IP 地址范围。您可以遵循最小权限这一最佳实践,仅授予在共享资源上执行任务所需的权限。
此外,您可以根据需要更新或删除客户管理的权限。
创建客户托管权限
客户管理的权限特定于Amazon Web Services 区域. 确保在相应的区域创建此客户管理权限。
- Console
-
创建客户托管权限
-
请执行下列操作之一:
-
对于客户管理的权限详细信息,请输入客户管理的权限名称。
-
选择此托管权限适用的资源类型。
-
对于策略模板,您可以定义允许对此资源类型执行哪些操作。
-
您可以选择 “导入托管权限” 以使用现有托管权限中的操作。
-
在可视化编辑器中选择或取消选择访问级别信息以满足您的要求。
-
使用 JSON 编辑器添加或修改条件。
-
-
(可选)要将标签附加到托管权限,请在标签中输入标签密钥和值。通过选择添加新标签来添加其他标签。根据需要重复执行此步骤。
-
完成后,通过选择 C reate 客户托管型权限。
-
- Amazon CLI
-
创建客户托管权限
-
运行 create- permission 命令并指定名称、客户管理权限所适用的资源类型以及策略模板正文文本。
以下示例命令为
imagebuilder:Component
资源类型创建托管权限。$
aws ram create-permission \ --name TestCMP \ --resource-type imagebuilder:Component \ --policy-template "{\"Effect\":\"Allow\",\"Action\":[\"imagebuilder:ListComponents\"]}"
{ "permission": { "arn": "arn:aws:ram:cn-north-1:123456789012:permission/TestCMP", "version": "1", "defaultVersion": true, "isResourceTypeDefault": false, "name": "TestCMP", "resourceType": "imagebuilder:Component", "status": "ATTACHABLE", "creationTime": 1680033769.401, "lastUpdatedTime": 1680033769.401 } }
-
创建客户托管权限的新版本
如果您的客户管理权限的用例发生变化,您可以创建托管权限的新版本。这不会影响您现有的资源共享,只会影响未来使用此客户管理权限的新资源共享。
每个托管权限最多可以有五个版本,但您只能关联默认版本。
- Console
-
创建客户托管权限的新版本
-
导航到托管权限库
。 -
按客户管理的权限列表筛选托管权限,或搜索要更改的客户管理权限的名称。
-
在托管权限详细信息页面的托管权限版本部分下,选择创建版本。
-
对于策略模板,您可以使用可视化编辑器或 JSON 编辑器添加或删除操作和条件。
您也可以选择导入托管权限来使用现有策略模板。
-
完成后,在页面底部选择 C reate 版本。
-
- Amazon CLI
-
创建客户托管权限的新版本
-
找到要创建新版本的托管权限的 Amazon 资源名称 (ARN)。为此,使用
--permission-type CUSTOMER_MANAGED
参数调用 list- permissions,使其仅包含客户管理的权限。$
aws ram-cmp list-permissions --permission-type CUSTOMER_MANAGED
{ "permissions": [ { "arn": "arn:aws:ram:cn-north-1:123456789012:permission/TestCMP", "version": "2", "defaultVersion": true, "isResourceTypeDefault": false, "name": "TestCMP", "permissionType": "CUSTOMER_MANAGED", "resourceType": "imagebuilder:Component", "status": "ATTACHABLE", "creationTime": 1680035597.346, "lastUpdatedTime": 1680035597.346 } ] }
-
获得 ARN 后,您可以调用该create-permission-version操作并提供更新的策略模板。
$
aws ram create-permission-version \ --permission-arn arn:aws:ram:cn-north-1:123456789012:permission/TestCMP \ --policy-template {"Effect":"Allow","Action":["imagebuilder:ListComponents"]}
{ "permission": { "arn": "arn:aws:ram:cn-north-1:123456789012:permission/TestCMP", "version": "2", "defaultVersion": true, "isResourceTypeDefault": false, "name": "TestCMP", "status": "ATTACHABLE", "resourceType": "imagebuilder:Component", "permission": "{\"Effect\":\"Allow\",\"Action\":[\"imagebuilder:ListComponents\"]}", "creationTime": 1680038973.79, "lastUpdatedTime": 1680038973.79 } }
输出包括新版本的版本号。
-
选择其他版本作为客户管理权限的默认版本
您可以将另一个客户管理权限版本设置为新的默认版本。
- Console
-
为客户管理的权限设置新的默认版本
-
导航到托管权限库
。 -
按客户管理的权限列表筛选托管权限,或搜索要更改的客户管理权限的名称。
-
在客户管理权限详细信息页面的托管权限版本部分下,使用下拉列表选择要设置为新的默认版本。
-
选择 “设为默认版本”。
-
出现对话框时,确认您希望将此版本作为所有使用此客户管理权限的新资源共享的默认版本。如果您同意,请选择 “设为默认版本”。
-
- Amazon CLI
-
为客户管理的权限设置新的默认版本
-
通过调用来查找要设置为默认版本的版本号list-permission-versions。
以下示例命令将检索指定托管权限的当前版本。
$
aws ram list-permission-versions \ --permission-arn arn:aws:ram:cn-north-1:123456789012:permission/TestCMP
{ "permissions": [ { "arn": "arn:aws:ram:cn-north-1:123456789012:permission/TestCMP", "version": "1", "defaultVersion": false, "isResourceTypeDefault": false, "name": "TestCMP", "permissionType": "CUSTOMER_MANAGED", "featureSet": "STANDARD", "resourceType": "imagebuilder:Component", "status": "UNATTACHABLE", "creationTime": 1680033769.401, "lastUpdatedTime": 1680035597.345 }, { "arn": "arn:aws:ram:cn-north-1:123456789012:permission/TestCMP", "version": "2", "defaultVersion": true, "isResourceTypeDefault": false, "name": "TestCMP", "permissionType": "CUSTOMER_MANAGED", "featureSet": "STANDARD", "resourceType": "imagebuilder:Component", "status": "ATTACHABLE", "creationTime": 1680035597.346, "lastUpdatedTime": 1680035597.346 } ] }
-
将版本号设置为默认值后,即可调用该set-default-permission-version操作。
$
aws ram-cmp set-default-permission-version \ --permission-arn arn:aws:ram:cn-north-1:123456789012:permission/TestCMP \ --version 2
如果成功后,不返回任何输出。您可以list-permission-versions再次运行并验证所选版本的
defaultVersion
字段现在是否设置为true
。
-
删除客户管理的权限版本
每个客户托管权限最多可以有五个版本。当不再需要某个版本时,可以将其删除。您无法删除客户托管权限的默认版本。删除的版本在被完全删除之前会在控制台中保持长达两个小时的显示状态,其状态为已删除。
- Console
-
删除客户管理的权限版本
-
导航到托管权限库
。 -
按客户管理筛选托管权限列表,或使用要删除的版本搜索客户管理权限的名称。
-
确保要删除的版本不是当前的默认版本。
-
对于页面的 “版本” 部分,选择 “关联资源共享” 选项卡以查看是否有共享使用此版本。
如果有任何关联的共享,则必须先更改客户管理的权限版本,然后才能删除此版本。
-
在版本部分右侧,通过选择 Det(删除版本)来删除版本。
-
在确认对话框中,通过选择 Det(删除)来确认您要删除客户托管权限的此版本。
如果您不想删除客户托管权限的此版本,请通过选择 Cang(取消)来删除客户托管权限的此版本。
-
- Amazon CLI
-
删除客户托管权限的一个版本
-
调用该list-permission-versions操作以检索可用的版本号。
-
获得版本号后,将其作为参数提供给delete-permission-version。
$
aws ram-cmp delete-permission-version \ --permission-arn arn:aws:ram:cn-north-1:123456789012:permission/TestCMP \ --version 1
如果成功后,不返回任何输出。您可以list-permission-versions再次运行并验证输出中是否不再包含该版本。
-
删除客户管理的权限
如果不再需要客户管理的权限且未在使用中,则可以将其删除。您无法删除与资源共享关联的客户托管权限。删除的客户管理权限将在两小时后消失。在此之前,它在托管权限库中仍然可见,状态为已删除。
- Console
-
删除客户管理的权限
-
导航到托管权限库
。 -
按 “客户管理” 筛选托管权限列表,或搜索要删除的客户管理权限的名称。
-
在选择客户管理权限之前,确认托管权限列表中有 0 个关联共享。
如果仍存在与托管权限关联的资源共享,则必须为所有资源共享分配其他托管权限,然后才能继续。
-
在客户托管权限详细信息页面的右上角,通过选择 Det 托管权限。
-
出现确认对话框时,选择 “删除” 以删除托管权限。
-
- Amazon CLI
-
删除客户管理的权限
-
通过调用 list-permissions 来查找要删除的托管权限的 ARN,
--permission-type CUSTOMER_MANAGED
参数为仅包含客户管理权限。$
aws ram-cmp list-permissions --permission-type CUSTOMER_MANAGED
{ "permissions": [ { "arn": "arn:aws:ram:cn-north-1:123456789012:permission/TestCMP", "version": "2", "defaultVersion": true, "isResourceTypeDefault": false, "name": "TestCMP", "permissionType": "CUSTOMER_MANAGED", "resourceType": "imagebuilder:Component", "status": "ATTACHABLE", "creationTime": 1680035597.346, "lastUpdatedTime": 1680035597.346 } ] }
-
在获得托管删除权限的 ARN 后,将其作为删除权限的参数提供。
$
aws ram delete-permission \ --permission-arn arn:aws:ram:cn-north-1:123456789012:permission/TestCMP
{ "returnValue": true, "permissionStatus": "DELETING" }
-