![](/img/trans.png)
[英]PHP SDK Cannot get AWS Credentials on EC2 Instance with IAM Role attached
[英]Detect EC2 role with AWS PHP SDK?
我编写了 php 库来帮助与 Amazon Web Services 一起工作。 它旨在查找默认的 $HOME/.aws/credentials(或指向类似格式的文件)或在继续之前查找环境中的密钥和秘密。
我们现在将在 EC2 上运行它,我向我展示了如何将角色与 EC2 结合使用来获得并更好地控制服务器代码可以做什么和不能做什么。 但是我需要修改我的代码,以便在继续之前知道它何时具有适当的权限,而且我在文档中没有看到任何关于为 EC2 实例分配给定角色的地方,您如何在 SDK 中知道它具有该权限角色。
一旦我实例化 SDK 以询问类似于“hasRole”或“getRoleArn”之类的东西,有什么方法吗?
SDK 直接映射到 API 调用。 因此,如果您知道要调用什么cli
命令,则可以更轻松地进行 google。 所以你最有可能想要aws sts get-caller-identity
。
用谷歌搜索“PHP sts sdk aws”就是你要做的搜索。 然后你会在这个页面上结束。
所以这种方式是使用SDK。 还有其他几种方法。 当您使用ec2
您也可以使用实例元数据。
另一方面,我确实认为您应该小心将 AWS 角色泄漏到您的应用程序代码中。 使用用户身份上下文可能更有意义,例如使用 Cogito,然后使用具有不同权限集的不同组。 实际ec2
实例上的角色不应更改(除非您重新部署),因此您的代码无需检查在应用程序正常运行期间不会更改的内容。 您可以简单地使用环境变量将您想要的任何配置传达给您的应用程序。
aws sts get-caller-identity --query 'Arn'
arn:aws:iam::1232412321:role/YourRole
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.