実現したい事
pythonでpynamodbを使用してDynamoDBを制御してテーブルを作成する。
困っている事
テーブルが作成されない。
今っている事
python manage.py init_dbを実行すると下記のようなエラーがでてコードの実行が完了されない。
エラーコード
Traceback (most recent call last): File "manage.py", line 8, in <module> manager.run() File "C:\Users\user.virtualenvs\application-KTHLna8B\lib\site-packages\flask_script\__init__.py", line 417, in run result = self.handle(argv[0], argv[1:]) File "C:\Users\user.virtualenvs\application-KTHLna8B\lib\site-packages\flask_script\__init__.py", line 386, in handle res = handle(*args, **config) File "C:\Users\user.virtualenvs\application-KTHLna8B\lib\site-packages\flask_script\commands.py", line 216, in __call__ return self.run(*args, **kwargs) File "C:\Users\user\Desktop\application\flask_blog\scripts\db.py", line 10, in run if not Entry.exists(): File "C:\Users\user.virtualenvs\application-KTHLna8B\lib\site-packages\pynamodb\models.py", line 753, in exists cls._get_connection().describe_table() File "C:\Users\user.virtualenvs\application-KTHLna8B\lib\site-packages\pynamodb\connection\table.py", line 290, in describe_table return self.connection.describe_table(self.table_name) File "C:\Users\user.virtualenvs\application-KTHLna8B\lib\site-packages\pynamodb\connection\base.py", line 748, in describe_table tbl = self.get_meta_table(table_name, refresh=True) File "C:\Users\user.virtualenvs\application-KTHLna8B\lib\site-packages\pynamodb\connection\base.py", line 548, in get_meta_table data = self.dispatch(DESCRIBE_TABLE, operation_kwargs) File "C:\Users\user.virtualenvs\application-KTHLna8B\lib\site-packages\pynamodb\connection\base.py", line 329, in dispatch data = self._make_api_call(operation_name, operation_kwargs, settings) File "C:\Users\user.virtualenvs\application-KTHLna8B\lib\site-packages\pynamodb\connection\base.py", line 440, in _make_api_call raise VerboseClientError(botocore_expected_format, operation_name, verbose_properties) pynamodb.exceptions.VerboseClientError: An error occurred (AccessDeniedException) on request (RQJV3QL0TRKS6U~) on table (serverless_blog_entries) when calling the DescribeTable operation: User: arn:aws:iam::アカウントID:user/zappa-exec-user is not authorized to perform: dynamodb:DescribeTable on resource: arn:aws:dynamodb:ap-northeast-1:アカウントID:table/serverless_blog_entries
自分の中ではuser/zappa-exec-userにtable/serverless_blog_entriesを作成する権限がないという事だと思っているのですがどうでしょうか?
ちなみに開発環境と本番環境で分かれており、今回は本番環境での実施予定になります。
可能な限り教えていただけないでしょうか?よろしくお願い致します。
追記
現状下記のようなポリシーでユーザーを作成しているのですがこれだとDynamoDBの権限としては不足しているでしょうか?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:GetRole", "iam:CreateRole", "iam:PutRolePolicy", "apigateway:*", "cloudformation:*", "events:*", "lambda:*", "logs:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::アカウントID(数字の奴):role/*-ZappaLambdaExecutionRole" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::zappa-*" } ] }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。