如何在 AWS 上创建临时安全凭证
How to create Temporary Security Credentials on AWS
我正在尝试使用 Apache Libcloud
(Web) and reading the Documentation 如何将它与 Amazon EC2 一起使用我在开始时卡在了一个步骤上。
关于这一步:
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
cls = get_driver(Provider.EC2)
driver = cls('temporary access key', 'temporary secret key',
token='temporary session token', region="us-west-1")
您需要传递临时访问数据并告诉您阅读 Amazon Documentation 但我也阅读了文档 我不太清楚我必须做什么才能获得我的临时凭证。
文档上说您可以与 AWS STS API
交互以连接到端点,但我不明白您如何获得凭据。此外,在 Libcloud Web 的示例中,他们使用个人凭据:
ACCESS_ID = 'your access id'
SECRET_KEY = 'your secret key'
所以我有点迷路了。如何获得我的临时凭证以在我的代码中使用它?
感谢和问候。
如果此代码不 运行 在 EC2 实例上,我建议您使用静态凭证:
ACCESS_ID = 'your access id'
SECRET_KEY = 'your secret key'
cls = get_driver(Provider.EC2)
driver = cls(ACCESS_ID, SECRET_KEY, region="us-west-1")
创建访问凭据:
- 在 https://console.aws.amazon.com/iam/ 登录身份和访问管理 (IAM) 控制台。
- 在导航窗格中,选择用户。
- 选择所需用户的名称,然后选择“安全凭据”选项卡。
如果需要,展开“访问密钥”部分并执行以下任一操作:
选择创建访问密钥,然后选择下载凭据以将访问密钥 ID 和秘密访问密钥保存到计算机上的 CSV 文件中。将文件存储在安全位置。此对话框关闭后,您将无法再次访问秘密访问密钥。下载 CSV 文件后,选择“关闭”。
如果您想 运行 来自 EC2 机器的代码,您可以通过使用 AWS SDK 为 Python https://boto3.readthedocs.io/en/latest/guide/quickstart.html by calling assume_role() on the STS service https://boto3.readthedocs.io/en/latest/reference/services/sts.html
担任 IAM 角色来获取临时凭证
@Aker666 从我在网上查到的信息来看,您仍然需要使用常规 AWS api 来获取这些信息。
适合我的基本片段是:
import boto3
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
boto3.setup_default_session(aws_access_key_id='somekey',aws_secret_access_key='somesecret',region_name="eu-west-1")
sts_client = boto3.client('sts')
assumed_role_object = sts_client.assume_role(
RoleArn="arn:aws:iam::701********:role/iTerm_RO_from_TGT",
RoleSessionName='update-cloud-hosts.aviadraviv@Aviads-MacBook-Pro.local'
)
cls = get_driver(Provider.EC2)
driver = cls(assumed_role_object['Credentials']['AccessKeyId'], assumed_role_object['Credentials']['SecretAccessKey'],
token=assumed_role_object['Credentials']['SessionToken'], region="eu-west-1")
nodes = driver.list_nodes()
print(nodes)
希望这对任何人都有帮助。
我正在尝试使用 Apache Libcloud
(Web) and reading the Documentation 如何将它与 Amazon EC2 一起使用我在开始时卡在了一个步骤上。
关于这一步:
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
cls = get_driver(Provider.EC2)
driver = cls('temporary access key', 'temporary secret key',
token='temporary session token', region="us-west-1")
您需要传递临时访问数据并告诉您阅读 Amazon Documentation 但我也阅读了文档 我不太清楚我必须做什么才能获得我的临时凭证。
文档上说您可以与 AWS STS API
交互以连接到端点,但我不明白您如何获得凭据。此外,在 Libcloud Web 的示例中,他们使用个人凭据:
ACCESS_ID = 'your access id'
SECRET_KEY = 'your secret key'
所以我有点迷路了。如何获得我的临时凭证以在我的代码中使用它?
感谢和问候。
如果此代码不 运行 在 EC2 实例上,我建议您使用静态凭证:
ACCESS_ID = 'your access id'
SECRET_KEY = 'your secret key'
cls = get_driver(Provider.EC2)
driver = cls(ACCESS_ID, SECRET_KEY, region="us-west-1")
创建访问凭据:
- 在 https://console.aws.amazon.com/iam/ 登录身份和访问管理 (IAM) 控制台。
- 在导航窗格中,选择用户。
- 选择所需用户的名称,然后选择“安全凭据”选项卡。
如果需要,展开“访问密钥”部分并执行以下任一操作:
选择创建访问密钥,然后选择下载凭据以将访问密钥 ID 和秘密访问密钥保存到计算机上的 CSV 文件中。将文件存储在安全位置。此对话框关闭后,您将无法再次访问秘密访问密钥。下载 CSV 文件后,选择“关闭”。
如果您想 运行 来自 EC2 机器的代码,您可以通过使用 AWS SDK 为 Python https://boto3.readthedocs.io/en/latest/guide/quickstart.html by calling assume_role() on the STS service https://boto3.readthedocs.io/en/latest/reference/services/sts.html
担任 IAM 角色来获取临时凭证@Aker666 从我在网上查到的信息来看,您仍然需要使用常规 AWS api 来获取这些信息。
适合我的基本片段是:
import boto3
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
boto3.setup_default_session(aws_access_key_id='somekey',aws_secret_access_key='somesecret',region_name="eu-west-1")
sts_client = boto3.client('sts')
assumed_role_object = sts_client.assume_role(
RoleArn="arn:aws:iam::701********:role/iTerm_RO_from_TGT",
RoleSessionName='update-cloud-hosts.aviadraviv@Aviads-MacBook-Pro.local'
)
cls = get_driver(Provider.EC2)
driver = cls(assumed_role_object['Credentials']['AccessKeyId'], assumed_role_object['Credentials']['SecretAccessKey'],
token=assumed_role_object['Credentials']['SessionToken'], region="eu-west-1")
nodes = driver.list_nodes()
print(nodes)
希望这对任何人都有帮助。