amazon-web-services - 使用 AWS PHP SDK 检测 EC2 角色?
问题描述
我有我编写的 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
推荐阅读
- couchbase - 如何仅在 Couchbase 中获取父文档
- django - 从 django admin 重新排序导航栏
- python - 使用 Python Matplotlib 为 Excel 工作簿的不同工作表(工作表 1 和工作表 2)绘制不同的图表?
- r - [R] 中 kableExtra 的突然崩溃
- python - 设置代理证书环境变量
- dataframe - 在 DataFrame 上描述 vs printSchema 方法
- wix - 是否可以先复制文件,然后显示自定义对话框,然后在 WiX 安装程序中运行自定义操作?
- c# - 如何在 C# 中为数组添加 get 和 set
- typescript - React Native + Redux + Typescript 中的 TypeError
- ios - 如何在 SwiftUI 中永久隐藏 NavigationView 导航栏