php - 带有 InstanceProfile 的 PHP AWS AssumeRole 抛出异常
问题描述
试图让这个代码工作。我们已经设置好了,所以我们不需要从文件中读取凭据。但它仍在寻找他们。
$provider = \Aws\Credentials\CredentialProvider::instanceProfile();
call_user_func( $provider )->wait();
$config = [
'profile' => 'default',
'region' => 'us-east-1',
'version' => '2011-06-15',
'credentials' => $provider,
'http' => [
'connect_timeout' => 30, // By default these wait indefinitely
'timeout' => 60,
]
];
try {
$stsClient = new StsClient($config);
$stsResult = $stsClient->assumeRole([
'RoleArn' => 'arn:aws:iam::1234:role/my-role',
'RoleSessionName' => 'MySession'
]);
} catch (\Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
但是它不是从实例中获取它,而是抛出一个异常:
Cannot read credentials from /home/user/.aws/credentials
解决方案
消除
'profile' => 'default',
从 config.Using 这意味着它将始终尝试从文件系统中读取凭据。
推荐阅读
- c# - 我可以从 TableOperation Retrieve 操作中获取 PartionKey 和 RowKey 吗?
- c# - 将 IQueryable 对象与 xUnit 理论结合使用
- android-studio - 尝试从 Android Studio 启动我的应用时出现 NoSuchMethodException
- python-3.x - 如何在 Python 中使用带有路径名的 for 循环导入文件?
- asp.net-core - 在隐式流程中验证 IdentityServer4 中的用户名和密码
- javascript - 如何本地化 jQuery UI DateRangePicker?
- javascript - 为什么 getElementById() 在 Elements 上不可用?
- tfs - 如何将许可证添加到 TeamFoundation 2018?
- javascript - 如何将重复值对象计数为对象的值
- ssl - Kafka Connect 无法通过 SSL 从 Kafka 主题中读取