部分凭据找到明确的,缺失:aws_access_key_id

huangapple go评论105阅读模式
英文:

Partial credentials found in explicit, missing: aws_access_key_id

问题

我正在尝试运行以下代码片段(基于此处的代码1):

  1. import boto3, os
  2. from dotenv import load_dotenv
  3. load_dotenv()
  4. AWS_ACCESS_KEY=os.getenv('AWS_ACCESS_KEY')
  5. AWS_SECRET_KEY=os.getenv('AWS_SECRET_KEY')
  6. translate = boto3.client(
  7. service_name='translate',
  8. region_name='us-east-1',
  9. aws_access_key_id=AWS_ACCESS_KEY,
  10. aws_secret_access_key=AWS_SECRET_KEY,
  11. )
  12. result = translate.translate_text(Text="Hello, World",
  13. SourceLanguageCode="en", TargetLanguageCode="de")
  14. print('TranslatedText: ' + result.get('TranslatedText'))
  15. print('SourceLanguageCode: ' + result.get('SourceLanguageCode'))
  16. print('TargetLanguageCode: ' + result.get('TargetLanguageCode'))

我的.env文件如下(出于安全原因已编辑):

  1. AWS_ACCESS_KEY=AXXXXXXXXXXXXXXXXXXR
  2. AWS_ACCESS_KEY=+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXa

我收到的错误是:

  1. Traceback (most recent call last):
  2. File "/home/myuser/Desktop/mika/test.py", line 8, in <module>
  3. translate = boto3.client(
  4. File "/home/myuser/Desktop/mika/venv/lib/python3.10/site-packages/boto3/__init__.py", line 92, in client
  5. return _get_default_session().client(*args, **kwargs)
  6. File "/home/myuser/Desktop/mika/venv/lib/python3.10/site-packages/boto3/session.py", line 299, in client
  7. return self._session.create_client(
  8. File "/home/myuser/Desktop/mika/venv/lib/python3.10/site-packages/botocore/session.py", line 950, in create_client
  9. raise PartialCredentialsError(
  10. botocore.exceptions.PartialCredentialsError: Partial credentials found in explicit, missing: aws_access_key_id

我已经检查了多种情况,类似于“Partial credentials found in env”,但它们似乎不符合当前情况。

我做错了什么?

英文:

I am trying to run the following code snipet (based on this code here):

  1. import boto3, os
  2. from dotenv import load_dotenv
  3. load_dotenv()
  4. AWS_ACCESS_KEY=os.getenv(&#39;AWS_ACCESS_KEY&#39;)
  5. AWS_SECRET_KEY=os.getenv(&#39;AWS_SECRET_KEY&#39;)
  6. translate = boto3.client(
  7. service_name=&#39;translate&#39;,
  8. region_name=&#39;us-east-1&#39;,
  9. aws_access_key_id=AWS_ACCESS_KEY,
  10. aws_secret_access_key=AWS_SECRET_KEY,
  11. )
  12. result = translate.translate_text(Text=&quot;Hello, World&quot;,
  13. SourceLanguageCode=&quot;en&quot;, TargetLanguageCode=&quot;de&quot;)
  14. print(&#39;TranslatedText: &#39; + result.get(&#39;TranslatedText&#39;))
  15. print(&#39;SourceLanguageCode: &#39; + result.get(&#39;SourceLanguageCode&#39;))
  16. print(&#39;TargetLanguageCode: &#39; + result.get(&#39;TargetLanguageCode&#39;))

My .env file is the following (edited for security reasons):

  1. AWS_ACCESS_KEY=AXXXXXXXXXXXXXXXXXXR
  2. AWS_ACCESS_KEY=+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXa

The error I am getting is:

  1. Traceback (most recent call last):
  2. File &quot;/home/myuser/Desktop/mika/test.py&quot;, line 8, in &lt;module&gt;
  3. translate = boto3.client(
  4. File &quot;/home/myuser/Desktop/mika/venv/lib/python3.10/site-packages/boto3/__init__.py&quot;, line 92, in client
  5. return _get_default_session().client(*args, **kwargs)
  6. File &quot;/home/myuser/Desktop/mika/venv/lib/python3.10/site-packages/boto3/session.py&quot;, line 299, in client
  7. return self._session.create_client(
  8. File &quot;/home/myuser/Desktop/mika/venv/lib/python3.10/site-packages/botocore/session.py&quot;, line 950, in create_client
  9. raise PartialCredentialsError(
  10. botocore.exceptions.PartialCredentialsError: Partial credentials found in explicit, missing: aws_access_key_id

I have checked the several cases here that go like "Partial credentials found in env", but they do not seem as a match of the current case.

What am I doing wrong?

答案1

得分: 0

在你的.env文件中有SERVER_PUBLIC_KEY,但在Python代码中有AWS_SERVER_PUBLIC_KEY

英文:

In your .env you have SERVER_PUBLIC_KEY, but in the python code there is AWS_SERVER_PUBLIC_KEY.

答案2

得分: 0

经过与AWS支持团队的内部修订,以及我公司的AWS组织管理员(拥有启用/禁用权限的合适权限)进行的以下更改(与权限相关):

  1. AWS组织管理员已将角色AWSAdministratorAccessAWSPowerUserAccess添加到以下条件中:
  1. "ArnNotLike": {
  2. "aws:PrincipalARN": [
  3. "arn:aws:iam::*:role/AWSControlTowerExecution",
  4. "arn:aws:iam::*:role/AWSAdministratorAccess",
  5. "arn:aws:iam::*:role/AWSPowerUserAccess"
  6. ]
  7. }
  1. translate:*服务已添加到策略中:
  1. "NotAction": [
  2. "translate:*",
  3. "a4b:*",
  4. ...

通过这些更改,Python脚本现在显示所期望的输出:

  1. TranslatedText: Hallo, Welt
  2. SourceLanguageCode: en
  3. TargetLanguageCode: de
英文:

After an internal revision with AWS Support Team, and the AWS Organization Administrator of my company (who has the proper rights to enable / disable permissions), the following changes (linked to permissions) where done:

  1. Roles AWSAdministratorAccess & AWSPowerUserAccess where added to the following Condition, by the AWS Organization Administrator:
  1. &quot;ArnNotLike&quot;: {
  2. &quot;aws:PrincipalARN&quot;: [
  3. &quot;arn:aws:iam::*:role/AWSControlTowerExecution&quot;,
  4. &quot;arn:aws:iam::*:role/AWSAdministratorAccess&quot;,
  5. &quot;arn:aws:iam::*:role/AWSPowerUserAccess&quot;
  6. ]
  7. }
  1. translate:* service was added to the policy:
  1. &quot;NotAction&quot;: [
  2. &quot;translate:*&quot;,
  3. &quot;a4b:*&quot;,
  4. ...

With these changes, the Python script now displays the desired output:

  1. TranslatedText: Hallo, Welt
  2. SourceLanguageCode: en
  3. TargetLanguageCode: de

huangapple
  • 本文由 发表于 2023年7月14日 05:25:02
  • 转载请务必保留本文链接:https://go.coder-hub.com/76683333.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定