neuro-cli icon indicating copy to clipboard operation
neuro-cli copied to clipboard

Bucket access is not checked while importing existing bucket

Open YevheniiSemendiak opened this issue 4 years ago • 3 comments

Description:

Try to neuro blob importbucket for the bucket and provide invalid (1) credentials or (2) --provider-bucket-name. The bucket will be imported without warnings. Afterward, try to ls bucket content - you'll get an error.

List of blob://selectel-managed-poc/yevheniisemendiak/ysemendiak-test-standard-broken-name:
ERROR: An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
Traceback (most recent call last):
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/main.py", line 556, in main
    cli.main(**kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 325, in invoke
    super().invoke(ctx)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 325, in invoke
    super().invoke(ctx)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 288, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/decorators.py", line 38, in new_func
    return f(get_current_context().obj, *args, **kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 102, in wrapper
    return root.run(
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/root.py", line 174, in run
    return self._runner.run(main)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/asyncio_utils.py", line 55, in run
    return self._loop.run_until_complete(main_task)
  File "/Users/ysem/miniconda3/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 74, in _run_async_function
    return await func(root, *args, **kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/blob_storage.py", line 465, in ls
    async for entry in blobs_it:
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 1222, in list_blobs
    async for entry in it:
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 414, in list_blobs
    async for result in paginator.paginate(**kwargs):
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/aiobotocore/paginate.py", line 32, in __anext__
    response = await self._make_request(current_kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 297, in _wrapper
    async with manager_wrapped(*args, **kwargs) as res:
  File "/Users/ysem/miniconda3/lib/python3.8/contextlib.py", line 171, in __aenter__
    return await self.gen.__anext__()
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 315, in _wrapper
    async with _make_call(*args, **kwargs) as res:
  File "/Users/ysem/miniconda3/lib/python3.8/contextlib.py", line 171, in __aenter__
    return await self.gen.__anext__()
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 292, in _ctx_manager
    yield await _make_call(*args, **kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/aiobotocore/client.py", line 155, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
Full logs are available under /Users/ysem/.neuro/logs/neuro-run-2021-10-22_08-49-02.txt
(neuro) {21-10-22 11:49}ysem@ysem-macpro:~/work/projects/TMP|n blob ls blob:ysemendiak-test-standard-broken-pass
List of blob://selectel-managed-poc/yevheniisemendiak/ysemendiak-test-standard-broken-pass:
ERROR: An error occurred (SignatureDoesNotMatch) when calling the ListObjectsV2 operation: The request signature we calculated does not match the signature you provided. Check your AWS secret access key and signing
method. For more information, see REST Authentication and SOAP Authentication for details.
Traceback (most recent call last):
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/main.py", line 556, in main
    cli.main(**kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 325, in invoke
    super().invoke(ctx)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 325, in invoke
    super().invoke(ctx)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 288, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/click/decorators.py", line 38, in new_func
    return f(get_current_context().obj, *args, **kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 102, in wrapper
    return root.run(
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/root.py", line 174, in run
    return self._runner.run(main)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/asyncio_utils.py", line 55, in run
    return self._loop.run_until_complete(main_task)
  File "/Users/ysem/miniconda3/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/utils.py", line 74, in _run_async_function
    return await func(root, *args, **kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_cli/blob_storage.py", line 465, in ls
    async for entry in blobs_it:
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 1222, in list_blobs
    async for entry in it:
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 414, in list_blobs
    async for result in paginator.paginate(**kwargs):
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/aiobotocore/paginate.py", line 32, in __anext__
    response = await self._make_request(current_kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 297, in _wrapper
    async with manager_wrapped(*args, **kwargs) as res:
  File "/Users/ysem/miniconda3/lib/python3.8/contextlib.py", line 171, in __aenter__
    return await self.gen.__anext__()
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 315, in _wrapper
    async with _make_call(*args, **kwargs) as res:
  File "/Users/ysem/miniconda3/lib/python3.8/contextlib.py", line 171, in __aenter__
    return await self.gen.__anext__()
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/neuro_sdk/buckets.py", line 292, in _ctx_manager
    yield await _make_call(*args, **kwargs)
  File "/Users/ysem/.local/pipx/venvs/neuro-cli/lib/python3.8/site-packages/aiobotocore/client.py", line 155, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (SignatureDoesNotMatch) when calling the ListObjectsV2 operation: The request signature we calculated does not match the signature you provided. Check your
AWS secret access key and signing method. For more information, see REST Authentication and SOAP Authentication for details.
Full logs are available under /Users/ysem/.neuro/logs/neuro-run-2021-10-22_08-49-15.txt

Expected behavior:

Bucket access is validated before importing the credentials.

Additional context:

Neuro Platform Client 21.9.3 platformbucketsapi:21.10.2

cc @romasku

YevheniiSemendiak avatar Oct 22 '21 08:10 YevheniiSemendiak

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days

github-actions[bot] avatar Jan 21 '22 00:01 github-actions[bot]

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days

github-actions[bot] avatar Apr 25 '22 00:04 github-actions[bot]

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days

github-actions[bot] avatar Jul 27 '22 00:07 github-actions[bot]