如何授予 EC2 对 SQS 的访问权限
How to grant EC2 access to SQS
这些文档让我很困惑。我已经阅读了 SQS 访问文档。但真正让我震惊的是这个页面:http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-sqs.html
You can provide your credential profile like in the preceding example,
specify your access keys directly (via key and secret), or you can
choose to omit any credential information if you are using AWS
Identity and Access Management (IAM) roles for EC2 instances or
credentials sourced from the AWS_ACCESS_KEY_ID and
AWS_SECRET_ACCESS_KEY environment variables.
1)我加粗的,怎么可能?我找不到步骤,而您可以使用 IAM 角色授予 EC2 实例对 SQS 的访问权限。这很令人困惑。
2) 上述环境变量应该放在哪里?你从哪里得到密钥和秘密?
有人可以帮忙澄清一下吗?
应用程序可以通过多种方式发现 AWS 凭证。使用 AWS SDK automatically looks in these locations. This includes the AWS Command-Line Interface (CLI) 的任何软件,这是一个使用 AWS SDK 的 python 应用程序。
你的粗体字指的是下面的#3:
1.环境变量
SDK 将查找 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
环境变量。这是提供凭据的 极好的 方式,因为不存在意外将凭据文件包含在 github 或其他存储库中的危险。在 Windows 中,使用系统控制面板设置变量。在 Mac/Linux 中,只有 EXPORT
来自 shell.
的变量
创建 IAM 用户 时会提供凭据。将这些凭据放入环境变量是您的责任。
2。本地凭证文件
SDK会查看本地配置文件,例如:
~/.aws/credentials
C:\users\awsuser\.aws\credentials
这些文件非常适合存储用户特定的凭据,实际上可以存储 多个配置文件 ,每个配置文件都有自己的凭据。这对于在开发和测试等不同环境之间切换很有用。
创建 IAM 用户 时会提供凭据。将这些凭据放入配置文件是您的责任。
3。 Amazon EC2 实例上的 IAM 角色
IAM 角色可以在启动时与 Amazon EC2 实例相关联。然后将通过实例元数据服务通过 URL:
自动提供临时凭证
http://instance-data/latest/meta-data/iam/security-credentials/<role-name>/
这将 return 包含 AWS 凭证的元数据,例如:
{
"Code" : "Success",
"LastUpdated" : "2015-08-27T05:09:23Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIAI5OXLTT3D5NCV5MS",
"SecretAccessKey" : "sGoHyFaVLIsjm4WszUXJfyS1TVN6bAIWIrcFrRlt",
"Token" : "AQoDYXdzED4a4AP79/SbIPdV5N8k....lZwERog07b6rgU=",
"Expiration" : "2015-08-27T11:11:50Z"
}
这些凭据继承了实例启动时分配的 IAM 角色的权限。它们每 6 小时自动轮换一次(请注意本例中的 Expiration
,大约在 LastUpdated
时间后 6 小时。
使用 AWS SDK 的应用程序将自动查看此 URL 以检索安全凭证。当然,它们仅在 运行 在 Amazon EC2 实例上可用。
凭证供应商链
每个特定的 AWS SDK(例如 Java、.Net、PHP)可能会在不同的位置查找凭证。有关详细信息,请参阅相应的文档,例如:
这些文档让我很困惑。我已经阅读了 SQS 访问文档。但真正让我震惊的是这个页面:http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-sqs.html
You can provide your credential profile like in the preceding example, specify your access keys directly (via key and secret), or you can choose to omit any credential information if you are using AWS Identity and Access Management (IAM) roles for EC2 instances or credentials sourced from the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables.
1)我加粗的,怎么可能?我找不到步骤,而您可以使用 IAM 角色授予 EC2 实例对 SQS 的访问权限。这很令人困惑。
2) 上述环境变量应该放在哪里?你从哪里得到密钥和秘密?
有人可以帮忙澄清一下吗?
应用程序可以通过多种方式发现 AWS 凭证。使用 AWS SDK automatically looks in these locations. This includes the AWS Command-Line Interface (CLI) 的任何软件,这是一个使用 AWS SDK 的 python 应用程序。
你的粗体字指的是下面的#3:
1.环境变量
SDK 将查找 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
环境变量。这是提供凭据的 极好的 方式,因为不存在意外将凭据文件包含在 github 或其他存储库中的危险。在 Windows 中,使用系统控制面板设置变量。在 Mac/Linux 中,只有 EXPORT
来自 shell.
创建 IAM 用户 时会提供凭据。将这些凭据放入环境变量是您的责任。
2。本地凭证文件
SDK会查看本地配置文件,例如:
~/.aws/credentials
C:\users\awsuser\.aws\credentials
这些文件非常适合存储用户特定的凭据,实际上可以存储 多个配置文件 ,每个配置文件都有自己的凭据。这对于在开发和测试等不同环境之间切换很有用。
创建 IAM 用户 时会提供凭据。将这些凭据放入配置文件是您的责任。
3。 Amazon EC2 实例上的 IAM 角色
IAM 角色可以在启动时与 Amazon EC2 实例相关联。然后将通过实例元数据服务通过 URL:
自动提供临时凭证http://instance-data/latest/meta-data/iam/security-credentials/<role-name>/
这将 return 包含 AWS 凭证的元数据,例如:
{
"Code" : "Success",
"LastUpdated" : "2015-08-27T05:09:23Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIAI5OXLTT3D5NCV5MS",
"SecretAccessKey" : "sGoHyFaVLIsjm4WszUXJfyS1TVN6bAIWIrcFrRlt",
"Token" : "AQoDYXdzED4a4AP79/SbIPdV5N8k....lZwERog07b6rgU=",
"Expiration" : "2015-08-27T11:11:50Z"
}
这些凭据继承了实例启动时分配的 IAM 角色的权限。它们每 6 小时自动轮换一次(请注意本例中的 Expiration
,大约在 LastUpdated
时间后 6 小时。
使用 AWS SDK 的应用程序将自动查看此 URL 以检索安全凭证。当然,它们仅在 运行 在 Amazon EC2 实例上可用。
凭证供应商链
每个特定的 AWS SDK(例如 Java、.Net、PHP)可能会在不同的位置查找凭证。有关详细信息,请参阅相应的文档,例如: