- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在试图弄清楚为什么我的脚本中的这个步骤不起作用,据我所知,我的用户有权在我们的 AWS 账户上执行所有操作,所以我有点困惑。我想知道是否有一种方法可以让您从 botocore 或 boto3 本身获得返回,识别您的用户缺少的 iam 权限,而不是为您需要自己完成的工作找出正确的权限?
最初我配置了 zone_id from here
>>> dns_record = connection.change_resource_record_sets(
... HostedZoneId=zone_id,
... ChangeBatch={
... 'Changes': [
... {
... 'Action': action,
... 'ResourceRecordSet': {
... 'Name': name,
... 'Type': record_type,
... 'TTL': 60,
... 'AliasTarget': {
... 'HostedZoneId': zone_id,
... 'DNSName': destination,
... 'EvaluateTargetHealth': eval_health
... },
... }
... },
... ]
... }
... )
Traceback (most recent call last):
File "<stdin>", line 14, in <module>
File "/usr/lib/python2.7/site-packages/botocore/client.py", line 253, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/lib/python2.7/site-packages/botocore/client.py", line 543, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the ChangeResourceRecordSets operation: User: arn:aws:iam::1337:user/rumbles is not authorized to access this resource
>>>
>>> print connection, zone_id, action, name, record_type, destination, eval_health
<botocore.client.Route53 object at 0x7f9049d64590> Z117KPS5GTRQ2G UPSERT test-rumbles.domain.com A some-elb-1337.us-east-1.elb.amazonaws.com False
如果我将 zone_id 更改为我们 AWS 域的区域,我会得到:
>>> zone_id = "Z2401337RNHANU"
>>>
>>> try:
...
An error occurred (InvalidInput) when calling the ChangeResourceRecordSets operation: Invalid request
{'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 400, 'RequestId': '2bfde962-0e81-11e7-b312-53961dec3e91', 'HTTPHeaders': {'x-amzn-requestid': '2bfde962-0e81-11e7-b312-53961dec3e91', 'date': 'Tue, 21 Mar 2017 21:56:00 GMT', 'content-length': '259', 'content-type': 'text/xml', 'connection': 'close'}}, 'Error': {'Message': 'Invalid request', 'Code': 'InvalidInput', 'Type': 'Sender'}}
我之前不得不研究这些问题,我知道我只需要为这个特定的工作找到正确的 IAM 许可(假设我在正确的道路上),但我想知道是否有某种方法获取从 botocore 返回的信息?与其花时间手动查找,不如我能得到我的 except 以某种方式返回的拒绝我访问的 iam 规则吗?
或者我是在谈论我尚未找到/创建的功能请求?
最佳答案
您的答案来自无效区域 ID - HostedZoneId=""的第一个 boto3 调用需要是您 url 的托管区域 ID,第二个是引用别名目标的托管区域 ID。
如果它们相同,您将被拒绝访问,因为您正在尝试更改亚马逊拥有的 URL 的记录。
HostedZoneId 的第一个引用HostedZoneId(字符串)——[必填]
包含您要更改的资源记录集的托管区域的 ID。
HostedZoneId 的第二个引用 - 嵌套在 AliasTarget 中
-HostedZoneId(字符串)——[必需]仅限别名资源记录集:使用的值取决于您要将流量路由到的位置:ELB 负载均衡器为负载均衡器指定托管区域 ID 的值。使用以下方法获取托管区域 ID:
Amazon Web Services 一般引用的“AWS 区域和端点”一章中的弹性负载平衡表:使用与您在其中创建负载均衡器的区域相对应的“Amazon Route 53 托管区域 ID”列中的值.AWS 管理控制台:转到 Amazon EC2 页面,单击导航 Pane 中的 Load Balancers,选择负载均衡器,然后获取 Description 选项卡上 Hosted zone 字段的值。Elastic Load Balancing API:使用 DescribeLoadBalancers 获取 CanonicalHostedZoneNameId 的值。有关详细信息,请参阅适用的指南:经典负载均衡器:DescribeLoadBalancer应用程序负载均衡器:DescribeLoadBalancerAWS CLI:使用 describe-load-balancers
获取 CanonicalHostedZoneNameID 的值。配置为静态网站的 Amazon S3 存储桶
为您在其中创建存储桶的区域指定托管区域 ID。有关有效值的更多信息,请参阅 Amazon Web Services 一般引用的“AWS 区域和终端节点”一章中的 Amazon Simple Storage Service 网站终端节点表.
你的第二个问题 - 400 来自 zone_id 再次相同 - 所以现在你的第一个 zone_id 是正确的 - 它现在正在你的 url 中寻找 AWS 拥有的 URL...
试着把它分成这样
dns_record = connection.change_resource_record_sets(
HostedZoneId=my_url_zone_id,
ChangeBatch={
'Changes': [
{
'Action': action,
'ResourceRecordSet': {
'Name': name,
'Type': record_type,
'AliasTarget': {
'HostedZoneId': elb_zone_id,
'DNSName': destination,
'EvaluateTargetHealth': eval_health
},
}
},
]
}
其中 elb_zone_id = elb 的 zone_id 和其中 my_url_zone_id = 您特定 URL 的 zone_id
关于python - boto3 给出 AccessDenied,有没有办法查找缺少的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42939155/
我正在尝试使用 psutil 终止进程 (zoom.exe)。但是,我收到错误 psutil.AccessDenied。我拥有执行此操作的所有权限,并且已经在另一台电脑上进行了测试。 代码 def k
请帮助我解决这个问题。在我的NextJs应用程序中使用谷歌登录的http://localhost:3000/api/auth/error?error=AccessDenied。为什么?这是我的[...
我有一个使用 Spring Security 保护的方法,如下所示: @PreAuthorize("hasRole('add_user')") public void addUser(User use
当我遵循 Microsoft's article 时出现“AccessDenied”错误使用 AudioDeviceInputNode 类。这是我的代码: public sealed partial
An error occurred (AccessDenied) when calling the CreateStack operation: User: arn:aws:iam::81252085
我正在将可在.NET 3.5+中运行的.NET应用程序移植到WinRT,并且它包括一个WCF服务客户端(以编程方式使用ChannelFactory创建),该客户端几乎与所有共享其代码(即,我可以完全相
我遇到了一个主要问题:我无法访问不属于用户的(大多数)进程的信息。例如,以下内容: for proc in psutil.process_iter(): try: print
我已经为亚马逊支付实现了 PHP SDK,目前我面临一个错误,当我点击亚马逊支付按钮时,将打开一个弹出窗口询问亚马逊的登录凭据,成功登录后它将重定向到地址簿和付款方式选择页面,在该页面上我遇到了这个错
这个问题已经有答案了: HttpListener Access Denied (12 个回答) 已关闭 7 年前。 Win 7 和 VS2010 B2。我正在尝试使用内置 HttpListener 编
我一直在试图弄清楚为什么我的脚本中的这个步骤不起作用,据我所知,我的用户有权在我们的 AWS 账户上执行所有操作,所以我有点困惑。我想知道是否有一种方法可以让您从 botocore 或 boto3 本
我写了一个 serverless.yml部署一些 lambda,我在特定 API 中使用 GSI。 如果我使用 serverless-offline 在本地运行,它可以工作,但在部署 lambda 时
我在路由 AccessDenied 时遇到了一些问题,也可能是登录/注销路径。该项目是一个剥离的默认项目,没有更多的魔法。 Soo 存在一个 Account带有 AccessDenied() 的 Co
我尝试使用此 URI 生成访问 token https://login.microsoftonline.com//oauth2/v2.0/token 并且访问 token 已成功生成。 我正在传递 c
我将一个简单的 Web 应用程序部署到 S3通过 amplify publish .托管有Cloudfront已启用(我在设置托管时在放大中选择了 PROD 环境)并且我在 eu-central-1
Error: AccessDenied: You cannot perform the requested operation. 这是我尝试运行此代码时收到的错误消息... ... var sheet
我有一个 Angular 5 应用程序 - 我一直在本地运行,它在 Heroku 上与 nodjs 服务器一起运行很好,但是当我将它放在 Cloudfront 后面的 S3 存储桶中并点击刷新时,我得
我正在尝试创建一个文件,并在此之前将其删除(如果存在)。我的问题是,每当我成功进行删除操作并立即尝试创建相同的文件夹时,它都会因 AccessDenied 而失败。方法描述(对于 deleteIfEx
对于我的 SharePoint 设置,我有一个无法访问网站首页的特定用户组。如果他们直接访问它,他们会从 SharePoint 获得标准的“拒绝访问”页面。 我正在开发一个 HttpModule 拦截
我有几个用户提示无法使用 IE 10 浏览器访问我的网站,但他们可以使用 IE 9 和 Chrome。他们的问题是他们能够登录,但是当单击任何其他选项卡时,他们会收到 AccessDenied 错误,
我在使用 OpenTok 2 API 时遇到了一些问题.当我开始发布流时,系统提示我允许或拒绝该网站使用我的网络摄像头和麦克风,如果我允许,allowed() 应该运行,但如果我拒绝,则 denied
我是一名优秀的程序员,十分优秀!