amazon-web-services - 在 AWS 中创建 IAM 策略以保护具有特定 ID 的 EC2 实例
问题描述
我正在开发一个托管在 AWS 中的项目。控制台可供多个用户访问。我创建了一个 IAM 策略,允许特定用户创建实例和卷,但他们不应访问或查看控制台中具有特定实例 ID 的现有实例。
我的自定义策略如下,但未按预期工作:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"ec2:RunInstances"
],
"Resource":"*"
},
{
"Effect":"Deny",
"Action":[
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:RebootInstances"
],
"Resource":"*",
"Condition":{
"StringEquals":{
"ec2:ResourceTag/Owner":"Admin"
}
}
}
]
}
解决方案
如果您希望控制其他 IAM 用户看不到其他 IAM 用户创建的实例,那么这是不可能的,因为 describe instances api 不接受资源级权限。
但是,您可以选择限制 IAM 用户对其他用户创建的实例执行操作(启动/停止/重启...等)。
https://aws.amazon.com/premiumsupport/knowledge-center/restrict-ec2-iam/
第2部分:
尝试使用这个:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:RunInstances",
"ec2:RebootInstances"
],
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Owner": "${aws:username}"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:DescribeInstances",
"Resource": "*"
}
]
}
确保您的实例具有所需的标签键值对
推荐阅读
- java - 这是否可以使用 thymeleaf 和 spring 以 utf-8 编码将 html 代码注入 html 页面
- javascript - 使用 React Hooks 响应 pdf 响应,但是当增加或减小窗口大小时,我得到这个 TypeError
- android - 出了什么问题:任务':app:mergeDebugResources'的执行失败
- javascript - 发多个帖子
- c# - 我尝试制作仅在特定时间移动的相机,但失败得很惨
- java - java中的数组操作hackerrank问题(得到时间限制错误)
- r - 在 r 数据框中查找值的索引位置
- python - 为什么这个重命名列代码没有反映?
- hibernate - 乐观锁定有效,但没有 OptimisticLockException 或任何其他
- azure-devops - 在 prem 构建代理 BUILD_ARTIFACTSTAGINGDIRECTORY 路径上的 azure 中随机数的预定义构建变量名称是什么