Amazon web services 运行AWS批处理时是否需要传递AWS AccessKey和AccessSecret?

Amazon web services 运行AWS批处理时是否需要传递AWS AccessKey和AccessSecret?,amazon-web-services,environment-variables,boto3,aws-batch,Amazon Web Services,Environment Variables,Boto3,Aws Batch,我使用boto3在AWS批处理作业中与KMS通信。获取KMS客户端的代码如下所示: KMS=boto3.client('KMS') 我的问题是,我是否需要像这样显式地传递AWS SecretKey和AWS AccessKey: KMS=boto3.client('KMS', aws\u访问密钥\u id=访问密钥, aws_secret_access_key=secret_key) 或 也许我只是在定义计算环境时设置环境变量AWS\u ACCESS\u KEY\u ID和AWS\u SECR

我使用boto3在AWS批处理作业中与KMS通信。获取KMS客户端的代码如下所示:

KMS=boto3.client('KMS')
我的问题是,我是否需要像这样显式地传递AWS SecretKey和AWS AccessKey:

KMS=boto3.client('KMS',
aws\u访问密钥\u id=访问密钥,
aws_secret_access_key=secret_key)

也许我只是在定义计算环境时设置环境变量
AWS\u ACCESS\u KEY\u ID
AWS\u SECRET\u ACCESS\u KEY

哪一个是最佳选择?

当您选择时,您可以指定一个工作角色

您可以指定IAM角色,该角色为作业中的容器提供使用AWS API的权限。此功能使用Amazon ECS IAM角色实现任务功能

因此,您编写的任何代码都将根据作业角色提供凭据。您的代码不需要指定凭据(因此使用第一个示例)