标签: amazon-iam

IAM用户创建ECR存储库的权限是什么?

我的 IAM 用户收到此错误

User: arn:aws:iam::123456789:user/admin is not authorized to perform: 
ecr:CreateRepository on resource: *
Run Code Online (Sandbox Code Playgroud)

当我尝试创建存储库时。

在此输入图像描述

我已经授予AmazonEC2ContainerServiceFullAccess该用户所属的组。我在“附加策略”中搜索存储库,但没有匹配项。如何授予该用户权限?

amazon-iam amazon-ecr

7
推荐指数
3
解决办法
2万
查看次数

使用 IAM 账户限制 EC2 实例的可见性

我正在寻找一种将 ec2 实例的可见性限制为某些 IAM 帐户的方法。我真的很想要一种特定帐户只能看到它创建的实例的方法,即当它执行 describeInstances 时,只有它创建的那些实例存在。

我一直在研究使用基于资源标签的自定义 IAM 策略来做到这一点,虽然管理看起来没问题,但每个账户仍然可以看到其他用户使用 describeInstances 创建的实例。

真的,我正在寻找一种方法来隐藏由不同 IAM 帐户创建的资源。这是目前可能的吗?

amazon-ec2 amazon-web-services amazon-iam

6
推荐指数
2
解决办法
3952
查看次数

我无法在 AWS IAM 上上传服务器证书

我让AWS iam 在我的服务器上工作,并尝试上传一些证书:

aws iam upload-server-certificate --server-certificate-name domain2014 
--certificate-body file:///var/www/html/certificate.pem 
--private-key file:///var/www/html/private-key.pem 
--certificate-chain file:///var/www/html/ca.pem
Run Code Online (Sandbox Code Playgroud)

我得到:

Error parsing parameter '--certificate-body': file does not exist: /var/www/html/certificate.pem
Run Code Online (Sandbox Code Playgroud)

我尝试从我的 MAC 上传文件,我得到了相同的答案。

已经检查了这个问题,但是file://没有丢失,并且路由是可以的。

我确实有凭据,例如:

 AWSAccessKeyId=BKIAJQ1111111111111
 AWSSecretKey=H+2+2mko11111111111111cv+UFuA6
Run Code Online (Sandbox Code Playgroud)

还有一个配置文件。但老实说,我不明白在哪里或如何使用它来上传证书(使用aws configure 后我完成了信息,然后我不知道下一步该怎么做)。

所有这些过程都是昨天开始的,当时我没有问题地完成了上传负载均衡器的过程,但后来我意识到实际工作的证书是我之前在服务器上的自签名证书(这是我昨天发布的问题

编辑:

如果我从终端尝试:

aws iam list-server-certificates
Run Code Online (Sandbox Code Playgroud)

我得到:

A client error (AccessDenied) occurred when calling the ListServerCertificates operation: User: arn:aws:iam::999990212999:user/admin is not authorized to perform: iam:ListServerCertificates on resource: arn:aws:iam:: 999990212999:server-certificate/
Run Code Online (Sandbox Code Playgroud)

编辑2 …

load-balancing ssl-certificate amazon-ec2 amazon-iam aws-cli

6
推荐指数
1
解决办法
6711
查看次数

创建一个 IAM 策略,允许除 IAM 之外的所有内容(PassRole 除外)

我正在尝试修改 IAM 策略,以便用户可以将 IAM 角色与允许对我们的 S3 存储桶具有只读权限的 EC2 实例相关联。

我们的团队使用 AWS 进行了大量研发,因此我不愿意限制对除 IAM 之外的任何 AWS 服务的访问,因为 IAM 会允许权限升级。

我已使用此问题中的信息添加了 iam:PassRole,但该策略无法在模拟器中验证。

{
"Statement": [
    {
        "Effect": "Allow",
        "NotAction": "iam:*",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "iam:PassRole",
        "Resource": "arn:aws:iam::ACCOUNTID:role/MYROLE"
    }
]
}
Run Code Online (Sandbox Code Playgroud)

如果我将第二条语句的 Resource 更改为"Resource": "*"验证成功并且模拟器显示明确允许 PassRole,则 IAM 中的所有其他内容都被隐式拒绝,而 S3 中的所有内容都被明确允许。

我在命名角色上做错了什么?允许所有人都使用 PassRole 会带来什么安全隐患(我假设策略模拟器不是骗人的)。有没有更好的方法来实现我想要的?

amazon-ec2 amazon-web-services amazon-iam

6
推荐指数
1
解决办法
3996
查看次数

如何知道是否实际使用了 AWS IAM 角色

我正在对一个 AWS 账户进行一些清理,我发现许多我几乎肯定的角色没有被使用。该帐户使用了许多服务,因此手动检查是不切实际的。

有没有办法知道特定 AWS 角色被使用了多少次?如果可能,哪些服务和/或实例正在使用它?

amazon-web-services amazon-iam

6
推荐指数
1
解决办法
1万
查看次数

确定 Cloudformation Stack 的 IAM 要求

我目前正在开发和启动一个相对简单的 cloudformation 堆栈。只是一些简单的 RDS 东西,通过外部 CI+CD 服务触发。

但是,我当前的开发周期效率非常低,这纯粹是因为我不明白我设置的持续集成IAM 组的 IAM 权限需要是什么。

我将尝试运行 Cloudformation 模板的部署,但会在设置某些内容并开始回滚时出现一些错误。回滚将失败,因为它需要不同的权限才能删除它迄今为止设法创建的内容。我添加了我发现的两个新权限,删除堆栈,因为它处于ROLLBACK_FAILED状态,然后重试。

我可以通配所有我需要的服务的所有权限,但是在将一些 AWS 凭证交给外部服务时,这不是最佳实践。

因为这。有没有办法知道我特别需要根据 cloudformation 模板设置哪些 IAM 权限?或者,每个 Cloudformation 资源是否需要一些 IAM 权限列表?我是否在尝试限制尽可能多的权限方面过于迂腐?还是我永远注定要进行 IAM 权限调整的试验?

amazon-web-services amazon-cloudformation amazon-iam

6
推荐指数
1
解决办法
1639
查看次数

AWS elastic beanstalk:部署时从 S3 下载文件时出现 Errno 404

我正在关注有关在将新实例部署到 Elastic beanstalk 时从 s3 获取证书的文档。说明非常简单:在下面创建一个配置文件,app-root/.ebextensions内容如下:

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-west-2-123456789012"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
  # Private key
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://s3-us-west-2.amazonaws.com/elasticbeanstalk-us-west-2-123456789012/server.key
Run Code Online (Sandbox Code Playgroud)

其中链接指向您的证书/密钥/其他内容上的位置。

但是,当我部署应用程序包(zip)时,构建失败,并[Errno 404] HTTP Error 404...提示在指定位置找不到我的文件,这与文件位于精确指定位置的事实相反,因为我可以从命令行(相同)当然是地区)。aws s3 cp s3://<pasted-link-to-file> .

另外,从表面上看,这似乎不是权限问题,因为如果是的话,我预计会出现“拒绝访问”之类的信息;存储桶策略授予以下操作aws-elasticbeanstalk-ec2-role

"Action": [
    "s3:ListBucket",
    "s3:ListBucketVersions",
    "s3:GetObject",
    "s3:GetObjectVersion"
]
Run Code Online (Sandbox Code Playgroud)

aws-elasticbeanstalk-ec2-role我还在IAM 中附加了完整的 s3 访问策略。

但事实上,我可以从 cli 访问这些文件,但aws-elasticbeanstalk-ec2-role找不到它们,这表明 a) …

amazon-s3 amazon-iam elastic-beanstalk

6
推荐指数
1
解决办法
2396
查看次数

如何使用 CloudFormation 配置 AWS ElasticSearch 访问策略?

关于 ElasticSearch 访问控制AWS 文档讨论了如何通过创建 ES 域资源策略并将资源设置为 ES 域 ARN 后跟/*. 对于例如

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:user/test-user"
        ]
      },
      "Action": [
        "es:*"
      ],
      "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,test-user被授予对 ES 域子资源执行操作的权限,但不授予对 ES 域配置本身执行操作的权限。

当供应的使用CloudFormation AWS ES域,可以设置与所述资源策略AccessPolicies财产。AWS::Elasticsearch::DomainAccessPolicy不幸的是,没有 CloudFormation 资源,似乎在 ES 域上设置资源策略的唯一方法是使用此属性。

如果现在有办法知道要在现场使用的 ES 域 ARN,那么如何利用访问控制文档中推荐的策略类型Resource,因为在访问策略所在的位置尚未创建 ES 域定义?

我已经尝试DomainArn在访问策略的资源字段中引用ES 域的属性,但可以理解的是,这不起作用,因为它创建了循环依赖。

到目前为止,我想到的唯一解决方案是等到 AWS 更新 CloudFormation 以包含 …

amazon-web-services amazon-cloudformation amazon-iam

6
推荐指数
1
解决办法
2046
查看次数

为什么 AWS Lambda 需要将 ecsTaskExecutionRole 传递给 ECS 任务

我正在编写一个 AWS Lambda 函数来触发 ECS Fargate 任务。我正在遵循使用 AWS Fargate 和 Lambda 运行任务中提供的示例。虽然我的设置有效,但我不了解涉及 IAM 角色的部分之一。

其中一个步骤是创建一个 ECS 任务。我创建了该任务,其“任务执行 IAM 角色”保留在ecsTaskExecutionRole. 根据ECS任务设置页面的信息,“任务执行IAM角色”是

授权 Amazon ECS 为您的任务拉取私有映像和发布日志的角色。这在运行任务时代替 EC2 实例角色。

接下来,我创建 Lambda 函数。Lambda 函数设置的一部分是创建另一个 IAM 角色,因为根据“使用 AWS Fargate 和 Lambda 运行任务”页面,

Lambda 需要具有 2 个策略的 IAM 角色 - 一个用于运行任务,第二个用于将 ecsTaskExecutionRole 传递给任务。

角色看起来像这样(我压缩了空白以节省空间):

{   "Version": "2012-10-17",
    "Statement": [
        {   "Sid": "Stmt1512361420000",
            "Effect": "Allow",
            "Action": [
                "ecs:RunTask"
                 ],
            "Resource": [ "*" ]
        },
        {   "Sid": "Stmt1512361593000",
            "Effect": "Allow",
            "Action": [ "iam:PassRole" ], …
Run Code Online (Sandbox Code Playgroud)

amazon-iam amazon-lambda aws-fargate

6
推荐指数
1
解决办法
2071
查看次数

获取“Fargate 要求任务定义具有执行角色 ARN 以支持 ECR 映像。” 创建 Fargate 任务但角色已定义时

我正在尝试将一个非常简单的 Web 应用程序部署到 AWS Fargate。

我已将应用程序后端的 docker 映像推送到 ECR,并尝试为容器设置 Fargate 任务定义。我定义了任务的所有属性,设置相当简单,但任务不会创建,并且我总是收到错误:

提供的请求无效:创建任务定义:Fargate 要求任务定义具有执行角色 ARN 以支持 ECR 映像。(服务:AmazonECS;状态代码:400;错误代码:ClientException;请求 ID:;代理:null)”(RequestToken:,HandlerErrorCode:InvalidRequest)

我知道我有一个 ECR 映像,并且我已经创建并选择了 Fargate 想要的 IAM 角色(使用本文档),但它仍然抱怨。

我最初使用 EC2 启动类型创建任务,没有出现任何问题,但出于成本和简单性原因,决定使用 Fargate 启动类型。

我还需要做什么?

amazon-web-services amazon-iam aws-fargate

6
推荐指数
1
解决办法
7475
查看次数