标签: amazon-iam

适用于Amazon Elastic Search Cluster的正确访问策略

我最近开始使用新的Amazon Elasticsearch Service,我似乎无法弄清楚我需要的访问策略,因此我只能从我的EC2实例访问具有特定IAM角色的服务.

以下是我目前为ES域分配的访问策略的示例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::[ACCOUNT_ID]:role/my_es_role",
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1:[ACCOUNT_ID]:domain/[ES_DOMAIN]/*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但正如我所说,这不起作用.我登录到EC2实例(my_es_role附加了角色)并尝试在"https://*.es.amazonaws.com"端点上运行简单的curl调用,我收到以下错误:

{"消息":"用户:匿名无权执行:es:ESHttpGet on resource:arn:aws:es:us-east-1:[ACCOUNT_ID]:domain/[ES_DOMAIN] /"}

有没有人知道我必须在访问策略中更改什么才能使其正常工作?

amazon-ec2 amazon-web-services elasticsearch amazon-iam amazon-elasticsearch

96
推荐指数
4
解决办法
5万
查看次数

如何将私钥转换为RSA私钥?

我先解释一下我的问题.我从CA购买了证书,并使用以下格式生成csr和私钥:

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
Run Code Online (Sandbox Code Playgroud)

当我打开server.key文件时,我看到它以"----- BEGIN PRIVATE KEY -----"开头

我在我的服务器上使用SSL证书,一切看起来都很好.

现在我想将相同的证书上传到AWS IAM,以便我可以将它用于beanstalk负载均衡器.我使用此aws文档中的以下命令http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SubmitCSRCertAuth

iam-servercertupload -b public_key_certificate_file  -k privatekey.pem -s certificate_object_name
Run Code Online (Sandbox Code Playgroud)

我根据需要更改了证书文件名,但不断收到此错误:"400 MalformedCertificate Invalid Private Key".

有趣的是,在aws doc页面上,他们显示的示例私钥以"-------开始RSA私钥--------"开头

有没有办法使用openssl将我的私钥转换为RSA私钥?

ssl openssl ssl-certificate amazon-iam

88
推荐指数
3
解决办法
12万
查看次数

从cli工具获取AWS账号的快捷方式?

寻找一种快速获取帐号的方法,我最初想过要使用,aws iam get-account-authorization-details --max-items 1但这样做有几个问题.有没有办法做到这一点,可能不会跨帐户起源?

amazon-web-services amazon-iam aws-cli aws-sts

85
推荐指数
4
解决办法
3万
查看次数

无法选择自定义SSL证书(存储在AWS IAM中)

我将在CloudFront上创建一个新的发行版.我已经使用AWS CLI在AWS IAM上传了我的SSL证书.该证书显示在新分发页面上的"自定义SSL证书"下拉列表中,但它已禁用.

有人能告诉我为什么会这样吗?如何为此发行版选择我的自定义SSL证书?

ssl amazon-web-services amazon-cloudfront amazon-iam aws-cli

79
推荐指数
8
解决办法
3万
查看次数

AWS Lambda:提供的执行角色无权调用 EC2 上的 DescribeNetworkInterfaces

今天我有一个新的 AWS Lambda 问题,在谷歌找不到任何地方。

我新建了一个 Lambda 函数,毫无疑问。但是当我在这个函数中输入任何代码时[例如。console.log();] 并单击“保存”,出现错误:“提供的执行角色无权调用 EC2 上的 DescribeNetworkInterfaces”

exports.handler = (event, context, callback) => {
    callback(null, 'Hello from Lambda');
    console.log();  // here is my code   
}; 
Run Code Online (Sandbox Code Playgroud)

我将函数与 Role 绑定: lambda_excute_execution(Policy:AmazonElasticTranscoderFullAccess) 并且此函数现在未与任何触发器绑定。

然后,我给角色“AdministratorAccess”策略,我可以正确保存我的源代码。

此角色可以在今天之前成功运行 Functions。

有人知道这个错误吗?

非常感谢!

policy role amazon-web-services amazon-iam aws-lambda

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

用户无权执行:cloudformation:CreateStack

我正在尝试无服务器来创建AWS Lambdas,并在使用命令创建项目时serverless project create遇到以下错误.

AccessDenied: User: arn:aws:iam::XXXXXXXXX:user/XXXXXXXXX is not authorized to perform: cloudformation:CreateStack on resource: arn:aws:cloudformation:us-east-1:XXXXXXXXX:stack/XXXXXXXXX-development-r/*
Run Code Online (Sandbox Code Playgroud)

我创建了一个用户并向用户授予了以下权限.

  1. AWSLambdaFullAccess
  2. AmazonS3FullAccess
  3. CloudFrontFullAccess
  4. AWSCloudFormationReadOnlyAccess(没有AWSCloudFormationFullAccess授予)

我该怎么办?我必须授予哪些其他权限?

amazon-web-services aws-cloudformation amazon-iam

58
推荐指数
4
解决办法
4万
查看次数

如何使用IAM用户帐户登录AWS控制台?

我创建了一个IAM用户帐户.现在我想将此用户连接到AWS控制台.

AWS说:__CODE__.

我为IAM用户创建了一个密码.

尝试使用新用户名和密码登录AWS控制台不起作用.

我需要做什么?

security authentication amazon-web-services amazon-iam

51
推荐指数
3
解决办法
5万
查看次数

AccessDeniedException:用户无权执行:lambda:InvokeFunction

我正在尝试从节点调用lambda函数.

var aws = require('aws-sdk');
var lambda = new aws.Lambda({
    accessKeyId: 'id',
    secretAccessKey: 'key',
    region: 'us-west-2'
});

lambda.invoke({
    FunctionName: 'test1',
    Payload: JSON.stringify({
        key1: 'Arjun',
        key2: 'kom',
        key3: 'ath'
    })
}, function(err, data) {
    if (err) console.log(err, err.stack);
    else     console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

密钥用于IAM用户.用户必须AWSLambdaExecuteAWSLambdaBasicExecutionRole附加政策.

我收到了一个权限错误: AccessDeniedException: User: arn:aws:iam::1221321312:user/cli is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:us-west-2:1221321312:function:test1

我阅读了文档和几个博客,但我无法授权此用户调用lambda函数.如何让这个用户调用lambda?

谢谢.

amazon-web-services amazon-iam aws-lambda

50
推荐指数
4
解决办法
5万
查看次数

Terraform:将AWS托管策略附加到角色的正确方法?

我想将一个预先存在的AWS托管角色附加到策略,这是我当前的代码:

resource "aws_iam_role_policy_attachment" "sto-readonly-role-policy-attach" {
  role       = "${aws_iam_role.sto-test-role.name}"
  policy_arn = "arn:aws:iam::aws:policy/ReadOnlyAccess"
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来建模托管策略,然后引用它而不是硬编码ARN?看起来每当我对ARN /路径或其他类似的东西进行硬编码时,我通常会发现以后有更好的方法.

Terraform中是否存在对托管策略建模的内容?或者硬编码ARN是"正确"的方式吗?

amazon-web-services amazon-iam terraform

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

在应用AWS IAM策略有效之前,我应该等待多长时间?

我正在以编程方式添加和删除AWS IAM用户策略,并且我从这些策略的应用程序中获得了不一致的结果.

例如,这可能成功也可能不成功(我正在使用Java 1.6.6 SDK):

  1. 从可以从特定存储桶读取的用户开始
  2. 清除用户策略(列表策略然后为每个策略调用"deleteUserPolicy")
  3. 等到用户没有用户策略(调用"listUserPolicies"直到它返回一个空集)
  4. 尝试从桶读取(这应该失败)

如果我在#3和#4之间插入断点并等待几秒钟,则用户无法从桶中读取,这正是我所期望的.如果我删除断点,用户可以从桶中读取,这是错误的.

(当我添加策略然后访问资源时,这也是不一致的)

我想知道策略更改何时对组件(S3,SQS等)产生影响,而不仅仅是在IAM系统上.有没有办法从中获得收据或确认?或者可能有一定的时间等待?

是否有关于政策申请内部的文件?

(仅供参考我从https://forums.aws.amazon.com/thread.jspa?threadID=140383&tstart=0复制了我的问题)

policy amazon-s3 amazon-web-services user-permissions amazon-iam

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