Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 断言您拥有外部服务的AWS IAM角色_Amazon Web Services_Authentication_Amazon Iam_Identity - Fatal编程技术网

Amazon web services 断言您拥有外部服务的AWS IAM角色

Amazon web services 断言您拥有外部服务的AWS IAM角色,amazon-web-services,authentication,amazon-iam,identity,Amazon Web Services,Authentication,Amazon Iam,Identity,可以访问IAM角色的服务是否可以断言(证明)它可以访问外部服务的角色?本质上,IAM角色能否用于外部标识 我想做的是让在AWS内部运行的服务X对不在AWS内部运行的外部服务Y进行API调用,并说“我是AWS标识arn:AWS:iam::account id:role/role name”,外部服务将能够验证这一事实 我意识到这可以通过向外部服务发送实际的访问密钥/机密凭据来实现,但我正在寻找一种不需要发送实时凭据的方法 外部服务可以验证的签名/JWT之类的东西是完美的。实际上,您可以使用AWS的

可以访问IAM角色的服务是否可以断言(证明)它可以访问外部服务的角色?本质上,IAM角色能否用于外部标识

我想做的是让在AWS内部运行的服务X对不在AWS内部运行的外部服务Y进行API调用,并说“我是AWS标识
arn:AWS:iam::account id:role/role name
”,外部服务将能够验证这一事实

我意识到这可以通过向外部服务发送实际的访问密钥/机密凭据来实现,但我正在寻找一种不需要发送实时凭据的方法


外部服务可以验证的签名/JWT之类的东西是完美的。

实际上,您可以使用AWS的STS服务

它将根据以下文档“创建并向受信任用户提供临时安全凭据,以控制对AWS资源的访问”:


我认为这是不可能的。该角色允许通过签名访问AWS API,但这要求两端都知道您显然没有的秘密访问密钥


您可以使用一个解决方案,该解决方案通过证明用户有权访问可验证的资源来工作。例如,您可以将S3 putObject权限授予角色,将该bucket公开,然后外部服务可以要求调用者将某个文件放入该bucket中。如果调用者有权访问角色,那么它可以编写对象,然后证明其对角色的访问。

谢谢链接,但这并不是正确的解决方案。我不希望外部服务充当角色,我也不希望共享访问密钥,因为它们会授予对AWS资源的访问权。相反,我希望内部服务使用AWS标识与外部服务进行身份验证。比如,“我证明我是X角色”,但仅此而已。除非我遗漏了什么,否则STS允许你检索临时访问密钥,但它们没有任何限制。嗨,雅各布,现在我真的不知道你想做什么,但我认为STS可以在这种情况下帮助你。在您想要进行身份验证的任何时候,使用STS检索临时密钥并使用它们,它们将在一段时间后过期。另一个AWS认证服务是Cognito,您可以快速查看一下,但我认为它没有帮助