为什么无法从Braket Notebook访问S3存储桶?

0

【以下的问题经过翻译处理】 你好,

我正在尝试使用AWS Braket为一项大型研究项目做准备。作为试用过程的一部分,我正在尝试从我创建的S3 bucket中加载数据到pandas DataFrame中。我使用的脚本如下:

import sagemaker
import boto3
import pandas as pd

sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()

bucket='test'
file_name = 'sine.txt'

file_obj = boto3.client('s3').get_object(Bucket=bucket, Key=file_name)

df = pd.read_csv( file_obj['Body'], delimiter=' ')

不幸的是,在braket笔记本中运行它会导致以下错误:

ClientError: An error occurred (AccessDenied) when calling the GetObject operation: Access Denied

我四处搜索后发现,这应该是Brakets缺少IAM角色造成的。然而,根据我的身份和访问管理,所需的AWSServiceRoleForAmazonBraket角色已经激活。 Screenshot of AWSServiceRoleForAmazonBraket in IAM console

我花费了几个小时的时间搜索,但是所有潜在的解决方案都导致相同(或类似)的错误。这就是我来这里寻求帮助的原因。请问有人能告诉我如何解决这个问题吗?

1 Antwort
0

【以下的回答经过翻译处理】 你说得对,当你启动新笔记本时默认角色只能访问以“amazon-braket-”开头的S3存储桶。这是AmazonBraketFullAccess策略的相应语句(它附加在我们默认笔记本角色上)。

        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:CreateBucket",
                "s3:PutBucketPublicAccessBlock",
                "s3:PutBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::amazon-braket-*"
        },

如果您的存储桶名称为“amazon-braket-test”而不是“test”,则应该可以正常工作。最简单的方法是在整个过程中使用此命名约定。

如果您想使用名称为“test”的存储桶,则需要自定义附加到笔记本的角色(我无法确定您以上修改权限的角色)。例如,您可以在上面的片段中添加另一个资源:

        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:CreateBucket",
                "s3:PutBucketPublicAccessBlock",
                "s3:PutBucketPolicy"
            ],
            "Resource": [
                "arn:aws:s3:::amazon-braket-*",
                "arn:aws:s3:::test"
            ]
        },

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen