对请求进行身份验证和授权
默认情况下,目录存储桶为私有,只有被明确授予访问权限的用户才可以访问。目录存储桶的访问控制边界仅在存储桶级设置。与之相对,通用存储桶的访问控制边界可以在存储桶、前缀或对象标签级设置。这种不同意味着,对于 S3 Express One Zone 访问权限,目录存储桶是唯一可以包括在存储桶策略或 IAM 身份策略中的资源。
Amazon S3 Express One Zone 同时支持 AWS Identity and Access Management(AWS IAM)授权和基于会话的授权:
-
要在 S3 Express One Zone 中使用区域端点 API 操作(桶级或控制面板操作),请使用 IAM 授权模型,该模型不涉及会话管理。对于操作,将单独授予权限。有关更多信息,请参阅 使用 IAM 对区域端点 API 进行授权。
-
要使用可用区端点 API 操作(对象级或数据面板操作),但
CopyObject
和HeadBucket
除外,可以使用CreateSession
API 操作来创建和管理会话,这些会话经过优化,可为数据请求提供低延迟的授权。要检索和使用会话令牌,您必须在基于身份的策略或存储桶策略中,允许对目录存储桶执行s3express:CreateSession
操作。有关更多信息,请参阅 使用 IAM 对区域端点 API 进行授权。如果您在 Amazon S3 控制台中通过 AWS Command Line Interface(AWS CLI)或使用 AWS SDK 访问 S3 Express One Zone,S3 Express One Zone 会代表您创建会话。
使用 CreateSession
API 操作时,可以通过新的基于会话的机制,对请求进行身份验证和授权。您可以使用 CreateSession
来请求临时凭证,以便提供对存储桶的低延迟访问。这些临时凭证的作用范围限制为特定的目录存储桶。
要使用 CreateSession
,我们建议使用最新版本的 AWS SDK 或者使用 AWS Command Line Interface(AWS CLI)。支持的 AWS SDK 以及 AWS CLI 代表您处理会话的建立、刷新和终止。
您可以使用会话令牌以及仅限可用区(对象级)的操作(CopyObject
和 HeadBucket
除外),在一个会话中的多个请求上分配与授权关联的延迟。对于区域端点 API 操作(存储桶级操作),您可以使用 IAM 授权,这不涉及对会话的管理。有关更多信息,请参阅使用 IAM 对区域端点 API 进行授权 和使用 CreateSession 对可用区端点 API 操作进行授权。
如何对 API 操作进行身份验证和授权
下表列出了目录存储桶 API 操作的身份验证和授权信息。对于每个 API 操作,表中显示了 API 操作名称、IAM 策略操作、端点类型(区域或可用区)和授权机制(IAM 或基于会话)。此表还指出了是否支持跨账户访问。对存储桶级操作的访问权限,只能在基于 IAM 身份的策略(用户或角色)中授予,不能在存储桶策略中授予。
API | 端点类型 | IAM 操作 | 跨账户存取 |
---|---|---|---|
CreateBucket |
区域性 | s3express:CreateBucket |
否 |
DeleteBucket |
区域性 | s3express:DeleteBucket |
否 |
ListDirectoryBuckets |
区域性 | s3express:ListAllMyDirectoryBuckets |
否 |
PutBucketPolicy |
区域性 | s3express:PutBucketPolicy |
否 |
GetBucketPolicy |
区域性 | s3express:GetBucketPolicy |
否 |
DeleteBucketPolicy |
区域性 | s3express:DeleteBucketPolicy |
否 |
CreateSession |
可用区 | s3express:CreateSession |
是 |
CopyObject |
可用区 | s3express:CreateSession |
是 |
DeleteObject |
可用区 | s3express:CreateSession |
是 |
DeleteObjects |
可用区 | s3express:CreateSession |
是 |
HeadObject |
可用区 | s3express:CreateSession |
是 |
PutObject |
可用区 | s3express:CreateSession |
是 |
GetObjectAttributes |
可用区 | s3express:CreateSession |
是 |
ListObjectsV2 |
可用区 | s3express:CreateSession |
是 |
HeadBucket |
可用区 | s3express:CreateSession |
是 |
CreateMultipartUpload |
可用区 | s3express:CreateSession |
是 |
UploadPart |
可用区 | s3express:CreateSession |
是 |
UploadPartCopy |
可用区 | s3express:CreateSession |
是 |
CompleteMultipartUpload |
可用区 | s3express:CreateSession |
是 |
AbortMultipartUpload |
可用区 | s3express:CreateSession |
是 |
ListParts |
可用区 | s3express:CreateSession |
是 |
ListMultipartUploads |
可用区 | s3express:CreateSession |
是 |