EBS 直接 API 的 IAM 权限 - Amazon EBS

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

EBS 直接 API 的 IAM 权限

用户必须具有以下策略才能使用 EBS direct API。有关更多信息,请参阅更改用户权限

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

重要

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

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

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

以下策略允许在对具有特定键/值标记的快照使用读取 EBS 直接 API。在策略中,将 <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 直接 API。此策略授权基于 aws:CurrentTime 全局条件键使用 EBS 直接 API。在策略中,请务必将显示的日期和时间范围替换为适用于您的策略的日期和时间范围。

{ "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 用户指南》中的更改用户权限

以下策略允许在特定 AWS 区域的所有快照上使用写入 EBS 直接 API。在该策略中,将 <Region> 替换为快照的区域。

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

以下策略允许在对具有特定键/值标记的快照使用写入 EBS 直接 API。在策略中,将 <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 direct API。只有在指定了父快照 ID 时,它才允许执行 StartSnapshot 操作。因此,此策略会阻止在不使用父快照的情况下开始新快照的功能。

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

以下策略允许使用所有 EBS direct API。它还允许只为新快照创建 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 直接 API。此策略授权基于 aws:CurrentTime 全局条件键使用 EBS 直接 API。在策略中,请务必将显示的日期和时间范围替换为适用于您的策略的日期和时间范围。

{ "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 密钥的 AWS 账户 ID,将 < KeyId > 替换为 KMS 密钥的 ID。

注意

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

提示

为遵循最小特权原则,请不要允许对 kms:CreateGrant 拥有完全访问权限。相反,使用kms:GrantIsForAWSResource条件密钥允许用户仅在 AWS 服务代表用户创建授权时才允许用户在 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 用户指南》中的更改用户权限