本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
的身份和访问管理 AWS CloudHSM
AWS 使用安全凭证来识别您的身份并向您授予对 AWS 资源的访问权。您可以使用 AWS Identity and Access Management (IAM) 的功能来允许其他用户、服务和应用程序完全或以有限的方式使用您的 AWS 资源。您可以在不共享安全凭证的情况下执行此操作。
默认情况下,IAM 用户没有创建、查看或修改 AWS 资源的权限。要允许 IAM 用户访问资源(如负载均衡器)并执行任务,您可以:
-
创建授予 IAM 用户使用所需特定资源和 API 操作的权限的 IAM 策略。
-
将该策略附加到 IAM 用户或 IAM 用户所属的组。
在将策略附加到一个用户或一组用户时,它会授权或拒绝用户使用指定资源执行指定任务。
例如,您可以使用 IAM 在您的 Amazon Web Services account 下创建用户和组。IAM 用户可以是人员、系统或应用程序。然后,使用 IAM 策略向用户和组授予对指定资源执行特定操作的权限。
使用 IAM policy 授予权限
在将策略附加到一个用户或一组用户时,它会授权或拒绝用户使用指定资源执行指定任务。
IAM 策略是包含一个或多个语句的 JSON 文档。每个语句的结构如下例所示。
{ "Version": "2012-10-17", "Statement":[{ "Effect": "
effect
", "Action": "action
", "Resource": "resource-arn
", "Condition": { "condition
": { "key
":"value
" } } }] }
-
效果 - 效果可以是
Allow
或Deny
。在默认情况下,IAM 用户没有使用资源和 API 操作的许可,因此,所有请求均会被拒绝。显式允许将覆盖默认规则。显式拒绝将覆盖任何允许。 -
操作:操作是对其授予或拒绝权限的特定 API 操作。有关指定 操作的更多信息,请参阅适用的 API 操作 AWS CloudHSM。
-
资源-受操作影响的资源。 AWS CloudHSM 不支持资源级权限。必须使用* 通配符来指定所有 AWS CloudHSM 资源。
-
条件—— 您可以选择性地使用条件来控制策略的生效时间。有关更多信息,请参阅 的条件密钥 AWS CloudHSM。
有关更多信息,请参阅 IAM 用户指南。
适用的 API 操作 AWS CloudHSM
在 IAM 策略声明的操作元素中,您可以指定 AWS CloudHSM 提供的任何 API 操作。如以下示例所示,您必须使用小写形式的字符串 cloudhsm:
作为操作名称的前缀。
"Action": "cloudhsm:DescribeClusters"
要在单个语句中指定多项操作,请使用方括号将操作括起来并以逗号分隔,如以下示例所示。
"Action": [
"cloudhsm:DescribeClusters",
"cloudhsm:DescribeHsm"
]
您也可以使用 * 通配符指定多项操作。以下示例指定了以开头 AWS CloudHSM 的所有 API 操作名称List
。
"Action": "cloudhsm:List*"
要为指定所有 API 操作 AWS CloudHSM,请使用* 通配符,如以下示例所示。
"Action": "cloudhsm:*"
有关的 API 操作列表 AWS CloudHSM,请参阅AWS CloudHSM 操作。
的条件密钥 AWS CloudHSM
在创建策略时,您可指定控制策略生效时间的条件。每个条件都包含一个或多个键值对。有全局条件键和特定于服务的条件键。
AWS CloudHSM 没有特定于服务的上下文密钥。
有关全局条件键的更多信息,请参阅 IAM 用户指南中的 AWS 全球条件上下文键。
预定义的 AWS 托管策略 AWS CloudHSM
AWS 创建的托管策略将授予针对常用案例的必要权限。您可以根据您的 IAM 用户对 AWS CloudHSM 所需的访问权限将这些策略附加到这些用户:
-
AWSCloudHSMFull访问权限-授予使用 AWS CloudHSM 功能所需的完全访问权限。
-
AWSCloudHSMReadOnlyAccess— 授予对 AWS CloudHSM 功能的只读访问权限。
客户管理的政策 AWS CloudHSM
我们建议您为其创建仅 AWS CloudHSM 包含运行所需权限的 IAM 管理员组 AWS CloudHSM。将具有适当权限的策略附加到此组。根据需要向组添加 IAM 用户。添加的每个用户将继承管理员组的策略。
此外,我们建议您根据用户所需的权限来创建其他用户组。这将确保仅受信任的用户能够访问关键 API 操作。例如,您可以创建一个用户组,用于向集群和授予只读访问权限 HSMs。由于该组不允许用户删除集群 HSMs,或者,不受信任的用户不能影响生产工作负载的可用性。
随着时间的推移,新的 AWS CloudHSM 管理功能不断增加,您可以确保只有受信任的用户才能立即获得访问权限。通过在创建时将有限权限分配给策略,您可以在以后手动为它们分配新的功能权限。
以下是的策略示例 AWS CloudHSM。有关如何创建策略并将其附在 IAM 用户组上的信息,请参阅 IAM 用户指南中的在 JSON 选项卡上创建策略。
例 示例:只读权限
此策略允许访问 DescribeClusters
和 DescribeBackups
API 操作。它还包括针对特定 Amazon EC2 API 操作的额外权限。它不允许用户删除集群或 HSMs。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "cloudhsm:DescribeClusters", "cloudhsm:DescribeBackups", "cloudhsm:ListTags" ], "Resource": "*" } }
例 示例:高级用户权限
此策略允许访问一部分 AWS CloudHSM API 操作。它还包括针对特定Amazon EC2 操作的额外权限。它不允许用户删除集群或 HSMs。您必须包括允许 AWS CloudHSM 在您的账户中自动创建 AWSServiceRoleForCloudHSM 服务相关角色的iam:CreateServiceLinkedRole
操作。此角色 AWS CloudHSM 允许记录事件。有关更多信息,请参阅 的服务相关角色 AWS CloudHSM。
注意
有关每种 API 的特定权限,请参阅服务授权参考中的AWS CloudHSM的操作、资源和条件键表。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "cloudhsm:DescribeClusters", "cloudhsm:DescribeBackups", "cloudhsm:CreateCluster", "cloudhsm:CreateHsm", "cloudhsm:RestoreBackup", "cloudhsm:CopyBackupToRegion", "cloudhsm:InitializeCluster", "cloudhsm:ListTags", "cloudhsm:TagResource", "cloudhsm:UntagResource", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DetachNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:CreateSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeSecurityGroups", "ec2:DeleteSecurityGroup", "ec2:CreateTags", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "iam:CreateServiceLinkedRole" ], "Resource": "*" } }
例 示例:管理员权限
此策略允许访问所有 AWS CloudHSM API 操作,包括要删除的操作 HSMs 和集群。它还包括针对特定Amazon EC2 操作的额外权限。您必须包括允许 AWS CloudHSM 在您的账户中自动创建 AWSServiceRoleForCloudHSM 服务相关角色的iam:CreateServiceLinkedRole
操作。此角色 AWS CloudHSM 允许记录事件。有关更多信息,请参阅 的服务相关角色 AWS CloudHSM。
{ "Version":"2012-10-17", "Statement":{ "Effect":"Allow", "Action":[ "cloudhsm:*", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DetachNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:CreateSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeSecurityGroups", "ec2:DeleteSecurityGroup", "ec2:CreateTags", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "iam:CreateServiceLinkedRole" ], "Resource":"*" } }