本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 SDK 进行身份验证 AWS
使用开发 AWS 时,您必须确定您的代码是如何进行身份验证的。 AWS 服务您可以根据环境和可用的访问权限以不同的方式配置对 AWS 资源的编程 AWS 访问权限。
要选择您的身份验证方法并针对 SDK 进行配置,请参阅 AWS SDK 和工具参考指南中的身份验证和访问。
我们建议在本地开发且雇主未向其提供身份验证方法的新用户进行设置 AWS IAM Identity Center。此方法包括安装 AWS CLI 以便于配置和定期登录 AWS 访问门户。如果选择此方法,则在完成 AWS SDK 和工具参考指南中的 IAM Identity Center 身份验证程序后,您的环境应包含以下元素:
-
AWS CLI,用于在运行应用程序之前启动 AWS 访问门户会话。
-
一种共享 AWS
config
文件,其配置文件包含一组可由 SDK 引用的配置值。[default]
要查找此文件的位置,请参阅《AWS SDK 和工具参考指南》中的共享文件的位置。 -
共享
config
文件包含该region
设置。这将设置 SDK 用于请求的默认值 AWS 区域 。此区域用于未明确配置region
属性的 SDK 服务请求。 -
在向 AWS发送请求之前,SDK 使用配置文件的 SSO 令牌提供程序配置来获取凭证。该
sso_role_name
值是与 IAM 身份中心权限集关联的 IAM 角色,允许访问您的应用程序中的用户。 AWS 服务以下示例
config
文件展示了使用 SSO 令牌提供程序配置来设置的默认配置文件。配置文件的sso_session
设置是指所指定的sso-session
节。该sso-session
部分包含启动 AWS 访问门户会话的设置。[default] sso_session = my-sso sso_account_id =
111122223333
sso_role_name =SampleRole
region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url =https://provided-domain.awsapps.com/start
sso_registration_scopes = sso:account:access
AWS SDK for PHP 无需向您的应用程序添加其他软件包(例如SSO
和SSOOIDC
)即可使用 IAM Identity Center 身份验证。
启动 AWS 访问门户会话
在运行可访问的应用程序之前 AWS 服务,您需要为软件开发工具包进行有效的 AWS 访问门户会话,才能使用 IAM Identity Center 身份验证来解析证书。根据配置的会话时长,访问权限最终将过期,并且开发工具包将遇到身份验证错误。要登录 AWS 访问门户,请在中运行以下命令 AWS CLI。
aws sso login
如果遵循引导并具有默认的配置文件设置,则无需使用 --profile
选项来调用该命令。如果您的 SSO 令牌提供程序配置在使用指定的配置文件,则命令为 aws sso login --profile named-profile
。
要选择性地测试是否已有活动会话,请运行以下 AWS CLI 命令。
aws sts get-caller-identity
如果会话是活动的,则对此命令的响应会报告共享 config
文件中配置的 IAM Identity Center 账户和权限集。
注意
如果您已经有一个有效的 AWS 访问门户会话并且aws sso
login
正在运行,则无需提供凭据。
登录过程可能会提示您允许 AWS CLI 访问您的数据。由于 AWS CLI 是在适用于 Python 的 SDK 之上构建的,因此权限消息可能包含botocore
名称的变体。
了解有关身份验证的更多信息
-
有关使用 IAM Identity Center 进行身份验证的更多详细信息,请参阅软件开发工具包和AWS 工具参考指南中的了解 IAM 身份中心身份验证
-
有关最佳实践的更多信息,请参阅《IAM 用户指南》中的 IAM 中的安全最佳实践。
-
要创建短期 AWS 证书,请参阅 IAM 用户指南中的临时安全证书。
-
要了解其他 AWS SDK for PHP 可以使用的凭证提供商,请参阅 AWS SDK 和工具参考指南中的标准化凭证提供商。