你所有问题的答案都是 的 这取决于 强>
IAM策略和资源策略同样重要取决于用例。
假设您想要为AWS托管服务提供权限,例如提供云前端读取s3存储桶的权限..最好使用资源策略...
但是对于上传/更改内容,最好通过IAM政策..
简单来说,最好在提供来自某些用户/外部系统/用户管理实例的访问时使用IAM策略,并在AWS托管服务之间提供访问使用资源策略。
Console GUI看起来像它,但API没有操作。 文档很清楚: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-overview.html#access-control-manage-access-resource-based
访问控制的挑战是长期维护它:
如果只有一个位置可供查找,则上述所有3个任务都更容易。如果要限制访问,请使用“效果”:“拒绝”。 审查将抓住任何“意外转让”。
当然这取决于用例(例如4眼原则可以要求它)。并且某些权限无法在IAM中设置(例如“Everyone”)并且必须在资源上设置。或者,如果销毁/重新创建资源,则基于资源的权限将消失。
如果情况允许IAM和资源策略,它们具有相同的语法并且可以同样严格,至少在您的情况下。假设所有其他条件相同,IAM策略更容易管理。
不幸的是,除了“最小权限”之外,我不知道AWS发布的最佳实践。我建议您在可维护性方面采用最佳实践,以及AWS之外的其他权限。