EBS 直接 API 的 IAM 权限 - Amazon Elastic Compute Cloud

EBS 直接 API 的 IAM 权限

AWS Identity and Access Management(IAM)用户必须具有以下策略才能使用 EBS direct API。有关更多信息,请参阅更改 IAM 用户的权限

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

重要

向 IAM 用户分配以下策略时请小心谨慎。通过分配这些策略,您可以向通过 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 用户指南 中的更改 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 用户指南 中的更改 IAM 用户的权限

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

注意

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

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