我的 IAM 用户收到此错误
User: arn:aws:iam::123456789:user/admin is not authorized to perform:
ecr:CreateRepository on resource: *
Run Code Online (Sandbox Code Playgroud)
当我尝试创建存储库时。
我已经授予AmazonEC2ContainerServiceFullAccess该用户所属的组。我在“附加策略”中搜索存储库,但没有匹配项。如何授予该用户权限?
我正在寻找一种将 ec2 实例的可见性限制为某些 IAM 帐户的方法。我真的很想要一种特定帐户只能看到它创建的实例的方法,即当它执行 describeInstances 时,只有它创建的那些实例存在。
我一直在研究使用基于资源标签的自定义 IAM 策略来做到这一点,虽然管理看起来没问题,但每个账户仍然可以看到其他用户使用 describeInstances 创建的实例。
真的,我正在寻找一种方法来隐藏由不同 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
我正在尝试修改 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 会带来什么安全隐患(我假设策略模拟器不是骗人的)。有没有更好的方法来实现我想要的?
我正在对一个 AWS 账户进行一些清理,我发现许多我几乎肯定的角色没有被使用。该帐户使用了许多服务,因此手动检查是不切实际的。
有没有办法知道特定 AWS 角色被使用了多少次?如果可能,哪些服务和/或实例正在使用它?
我目前正在开发和启动一个相对简单的 cloudformation 堆栈。只是一些简单的 RDS 东西,通过外部 CI+CD 服务触发。
但是,我当前的开发周期效率非常低,这纯粹是因为我不明白我设置的持续集成IAM 组的 IAM 权限需要是什么。
我将尝试运行 Cloudformation 模板的部署,但会在设置某些内容并开始回滚时出现一些错误。回滚将失败,因为它需要不同的权限才能删除它迄今为止设法创建的内容。我添加了我发现的两个新权限,删除堆栈,因为它处于ROLLBACK_FAILED状态,然后重试。
我可以通配所有我需要的服务的所有权限,但是在将一些 AWS 凭证交给外部服务时,这不是最佳实践。
因为这。有没有办法知道我特别需要根据 cloudformation 模板设置哪些 IAM 权限?或者,每个 Cloudformation 资源是否需要一些 IAM 权限列表?我是否在尝试限制尽可能多的权限方面过于迂腐?还是我永远注定要进行 IAM 权限调整的试验?
我正在关注有关在将新实例部署到 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) …
关于 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 以包含 …
我正在编写一个 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) 我正在尝试将一个非常简单的 Web 应用程序部署到 AWS Fargate。
我已将应用程序后端的 docker 映像推送到 ECR,并尝试为容器设置 Fargate 任务定义。我定义了任务的所有属性,设置相当简单,但任务不会创建,并且我总是收到错误:
提供的请求无效:创建任务定义:Fargate 要求任务定义具有执行角色 ARN 以支持 ECR 映像。(服务:AmazonECS;状态代码:400;错误代码:ClientException;请求 ID:;代理:null)”(RequestToken:,HandlerErrorCode:InvalidRequest)
我知道我有一个 ECR 映像,并且我已经创建并选择了 Fargate 想要的 IAM 角色(使用本文档),但它仍然抱怨。
我最初使用 EC2 启动类型创建任务,没有出现任何问题,但出于成本和简单性原因,决定使用 Fargate 启动类型。
我还需要做什么?