amazon-web-services - IAM 策略仅允许 EC2 实例 API 访问以修改自身

标签 amazon-web-services amazon-ec2 amazon-iam

我正在尝试设置一个在启动时配置我的实例的应用程序,并且我想尽可能关闭该应用程序的 API 访问。我目前的政策如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1388183890000",
      "Effect": "Allow",
      "Action": [
        "ec2:AssociateAddress",
        "ec2:CreateTags",
        "ec2:DescribeInstances",
        "ec2:RebootInstances"
      ],
      "Resource":"*"
    }
  ]
}

但是,这允许应用程序对 EC2 中的任何内容执行任何这些操作。有没有办法可以将 ec2 实例上的应用程序的操作锁定到该特定实例或具有相同 IAM 角色的所有框?

最佳答案

是的,可以。您需要首先为相关 EC2 实例分配一些相关且通用的标签。然后使用 ec2:ResourceTag/tag-key 将 IAM 策略访问限制为仅对那些实例。

检查this example:

以下是上面示例中的相关代码:

    {
      "Effect": "Allow",
      "Action": "ec2:TerminateInstances",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*",
      "Condition": {
         "StringEquals": {
            "ec2:ResourceTag/purpose": "test"
         }
      }
   }

这样,您就可以将访问限制为仅具有必要标签的实例。

了解有关标记 here 的更多信息。希望这会有所帮助。

关于amazon-web-services - IAM 策略仅允许 EC2 实例 API 访问以修改自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20864429/

相关文章:

amazon-web-services - 我希望我的 lambda 代码能够将文件直接上传到不同账户的 Amazon S3 存储桶中

amazon-web-services - AWS APIgateway 响应映射

amazon-web-services - 是否可以为 cloudformation 中的一组 Lambda 创建 AWS::Lambda::Version

amazon-web-services - AWS Lambda 函数无法从 EC2 实例 : SequelizeConnectionError connect ETIMEDOUT 访问 MySQL 数据库

amazon-web-services - AWS弹性负载均衡器的异常行为

ruby-on-rails - AWS ElasticBeanstalk EC2 给出 postgresql 连接错误

amazon-web-services - 第二个的目的是什么(Effect :Deny, Condition :Null) Statement of this S3 bucket policy?

amazon-web-services - 从假定的角色承担一个角色?

amazon-web-services - 弹性Kubernetes服务AWS部署过程可避免停机

amazon-web-services - 无服务器 : Deploy Endpoint with Custom Authorizer - Name Not Found Error