如何向使用 boto3 创建的 table 授予读写权限?

How can I grant read write permissions to a table created using boto3?

我在 cloud9 上使用 Python,我不想通过控制台授予权限。 boto3 是否提供任何方法来授予权限,例如 aws_cdk.aws_dynamodb 提供的 grant_read_write_data()。当我通过 CLI 运行 它时,代码工作正常,但是当我通过管道 运行 它时,它在 BUILD 阶段给出错误。我正在调用堆栈中的函数。请帮忙,我是 AWS 的新手,我发现很难阅读文档,尤其是政策。

import boto3
from resources import s3bucket
import time

def create_sprint3_table():
    client_ = boto3.resource('dynamodb')
    try:
        table = client_.create_table(
            TableName='NEWTABLE',
            KeySchema=[
                {
                    'AttributeName': 'URL_ADDRESS',
                    'KeyType': 'HASH'  # Partition key
                }
            ],
            AttributeDefinitions=[
                {
                    'AttributeName': 'URL_ADDRESS',
                    'AttributeType': 'S'
                }
    
            ],
            ProvisionedThroughput={
                'ReadCapacityUnits': 10,
                'WriteCapacityUnits': 10
            }
        )
        time.sleep(5)
        #table.grant_read_write_data()
    except:
        pass


def putting_sprint3_data():
    URLs = s3bucket.read_file("newbucket", "urlsList.json")
    client_ = boto3.client('dynamodb')
    for U in URLs:
        item = {
            'URL_ADDRESS': {'S': U}
                }
        print(item)
        client_.put_item(TableName="NEWTABLE", Item=item)

谢谢。我希望我说清楚了。

您的管道角色没有权限执行PutItem。您必须更新该角色才能添加此类权限。