APIs 使用 IAM 直接控制对 EBS 的访问权限 - Amazon EBS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

APIs 使用 IAM 直接控制对 EBS 的访问权限

用户必须遵循以下策略才能直接 APIs使用 EBS。有关更多信息,请参阅更改用户权限

有关用于 IAM 权限策略的 EBS 直接 APIs 资源、操作和条件上下文密钥的更多信息,请参阅服务授权参考中的 A mazon Elastic Block Store 的操作、资源和条件密钥

重要

向 用户分配以下策略时请小心谨慎。通过分配这些策略,您可以向被拒绝通过 Amazon 访问相同资源的用户授予访问权限 EC2 APIs,例如 CopySnapshot 或 CreateVolume 操作。

以下策略允许在特定 Amazon 区域的所有快 APIs 照上使用直接读取 EBS。在策略中,<Region>替换为快照的区域。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ebs:ListSnapshotBlocks", "ebs:ListChangedBlocks", "ebs:GetSnapshotBlock" ], "Resource": "arn:aws:ec2:<Region>::snapshot/*" } ] }

以下策略允许在带有特定键值标签 APIs 的快照上使用直接读取 EBS。在策略中,<Key>替换为标签的键值和<Value>标签的值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ebs:ListSnapshotBlocks", "ebs:ListChangedBlocks", "ebs:GetSnapshotBlock" ], "Resource": "arn:aws:ec2:*::snapshot/*", "Condition": { "StringEqualsIgnoreCase": { "aws:ResourceTag/<Key>": "<Value>" } } } ] }

以下策略仅允许在特定时间范围内对账户中的所有快照使用所有读取 EBS direc APIs t。此策略授权 APIs 根据aws:CurrentTime全局条件密钥直接使用 EBS。在策略中,请务必将显示的日期和时间范围替换为适用于您的策略的日期和时间范围。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ebs:ListSnapshotBlocks", "ebs:ListChangedBlocks", "ebs:GetSnapshotBlock" ], "Resource": "arn:aws:ec2:*::snapshot/*", "Condition": { "DateGreaterThan": { "aws:CurrentTime": "2018-05-29T00:00:00Z" }, "DateLessThan": { "aws:CurrentTime": "2020-05-29T23:59:59Z" } } } ] }

有关更多信息,请参阅《IAM 用户指南》中的更改用户权限

以下策略允许在特定 Amazon 区域的所有快 APIs 照上直接写入 EBS。在策略中,<Region>替换为快照的区域。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ebs:StartSnapshot", "ebs:PutSnapshotBlock", "ebs:CompleteSnapshot" ], "Resource": "arn:aws:ec2:<Region>::snapshot/*" } ] }

以下策略允许在带有特定键值标签的快照上使用写入 EBS direc APIs t。在策略中,<Key>替换为标签的键值和<Value>标签的值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ebs:StartSnapshot", "ebs:PutSnapshotBlock", "ebs:CompleteSnapshot" ], "Resource": "arn:aws:ec2:*::snapshot/*", "Condition": { "StringEqualsIgnoreCase": { "aws:ResourceTag/<Key>": "<Value>" } } } ] }

以下策略允许使用所有 EBS Dire APIs ct。只有在指定了父快照 ID 时,它才允许执行 StartSnapshot 操作。因此,此策略会阻止在不使用父快照的情况下开始新快照的功能。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ebs:*", "Resource": "*", "Condition": { "StringEquals": { "ebs:ParentSnapshot": "arn:aws:ec2:*::snapshot/*" } } } ] }

以下策略允许使用所有 EBS Dire APIs ct。它还允许只为新快照创建 user 标签键。此策略还确保用户有权创建标签。StartSnapshot 操作是唯一可以指定标签的操作。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ebs:*", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": "user" } } }, { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "*" } ] }

以下策略仅允许在特定时间范围内对账户中的所有快照使用所有写入 EBS direc APIs t。此策略授权 APIs 根据aws:CurrentTime全局条件密钥直接使用 EBS。在策略中,请务必将显示的日期和时间范围替换为适用于您的策略的日期和时间范围。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ebs:StartSnapshot", "ebs:PutSnapshotBlock", "ebs:CompleteSnapshot" ], "Resource": "arn:aws:ec2:*::snapshot/*", "Condition": { "DateGreaterThan": { "aws:CurrentTime": "2018-05-29T00:00:00Z" }, "DateLessThan": { "aws:CurrentTime": "2020-05-29T23:59:59Z" } } } ] }

有关更多信息,请参阅《IAM 用户指南》中的更改用户权限

以下策略授予使用特定 KMS 密钥解密已加密快照的权限。该策略还授予使用 EBS 加密的默认 KMS 密钥来加密新快照的权限。在策略中,<Region>替换为 KMS 密钥的区域、<AccountId> KMS 密钥的 Amazon 账户 ID 和 <KeyId> KMS 密钥的 ID。

注意

默认情况下,账户中的所有委托人都可以访问用于 Amazon EBS 加密的默认 Amazon 托管 KMS 密钥,并且可以将其用于 EBS 加密和解密操作。如果您使用的是客户托管式密钥,则必须创建新的密钥策略或修改客户托管式密钥的现有密钥策略,以便授予主体对客户托管式密钥的访问权限。有关更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的在 Amazon KMS中使用密钥策略

提示

为遵循最小特权原则,请不要允许对 kms:CreateGrant 拥有完全访问权限。相反,使用kms:GrantIsForAWSResource条件密钥允许用户仅在 Amazon 服务代表用户创建授权时才允许用户在 KMS 密钥上创建授权,如以下示例所示。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncrypt*", "kms:CreateGrant", "ec2:CreateTags", "kms:DescribeKey" ], "Resource": "arn:aws:kms:<Region>:<AccountId>:key/<KeyId>", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

有关更多信息,请参阅《IAM 用户指南》中的更改用户权限