AWS Identity and Access Management 適用於 S3 快遞單一區域的 (IAM) - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Identity and Access Management 適用於 S3 快遞單一區域的 (IAM)

AWS Identity and Access Management (IAM) 可協助管理員安全地控制 AWS 資源存取權。 AWS 服務 IAM 管理員可控制哪些人員可進行身分驗證 (登入) 並獲得授權 (具有許可),以使用 S3 Express One Zone 中的 Amazon S3 資源。您可以免費使用 IAM。

根據預設,使用者未具備執行目錄儲存貯體和 S3 Express One Zone 操作的許可。若要授予存取目錄儲存貯體的許可,您可以使用 IAM 建立使用者、群組或角色,並將許可附加至這些身分。如需有關 IAM 的詳細資訊,請參閱《IAM 使用者指南》中的 IAM 安全最佳實務

若要提供存取權,您可以透過下列方式新增許可至您的使用者、群組或角色:

根據預設,目錄儲存貯體為私有,只有明確獲得存取權的使用者才能存取。目錄儲存貯體的存取控制界限只會在儲存貯體層級設定。相反地,一般用途儲存貯體的存取控制界限可在儲存貯體、字首或物件標籤層級設定。這個差異表示,目錄儲存貯體是唯一可以包含在儲存貯體政策或 IAM 身分政策中,以提供 S3 Express One Zone 存取權的資源。

使用 S3 Express One Zone 時,除了 IAM 授權之外,您還可以透過 CreateSession API 操作所處理的新工作階段型機制來驗證和授權請求。您可以使用 CreateSession 請求臨時憑證來提供低延遲的儲存貯體存取。這些臨時憑證的範圍會設為特定目錄儲存貯體。

若要使用CreateSession,我們建議您使用最新版本的 AWS SDK 或使用 AWS Command Line Interface (AWS CLI)。支援的 AWS SDK 以及代表您建立、重新整 AWS CLI 理和終止工作階段。

工作階段權杖只能搭配區域 (物件層級) 操作 (CopyObjectHeadBucket 除外) 使用,將與授權相關的延遲分散到工作階段中的數個請求。對於區域端點 API 操作 (儲存貯體層級操作),您可以使用不涉及管理工作階段的 IAM 授權。如需詳細資訊,請參閱 AWS Identity and Access Management 適用於 S3 快遞單一區域的 (IAM) 及 CreateSession 授權

如需有關適用於 S3 Express One Zone 的 IAM 的詳細資訊,請參閱下方主題。

主體

當您建立資源型政策以授予儲存貯體的存取權時,您必須使用 Principal 元素來指定可對該資源提出動作或操作請求的人員或應用程式。對於目錄儲存貯體政策,您可以使用下列主體:

  • 一個 AWS 帳戶

  • IAM 使用者

  • IAM 角色

  • 聯合身分使用者

如需詳細資訊,請參閱《IAM 使用者指南》中的 Principal

資源

目錄儲存貯體的 Amazon 資源名稱 (ARN) 包含s3express命名空間 AWS 區域、 AWS 帳戶 ID 和目錄值區名稱,其中包括可用區域 ID。若要存取並對目錄儲存貯體執行動作,您必須使用下列 ARN 格式:

arn:aws:s3express:region:account-id:bucket/base-bucket-name--azid--x-s3

如需有關 ARN 的詳細資訊,請參閱《IAM 使用者指南》中的 Amazon Resource Names (ARNs)。如需有關資源的詳細資訊,請參閱《IAM 使用者指南》中的 IAM JSON 政策元素︰Resource

S3 Express One Zone 的動作

在 IAM 身分型政策或資源型政策中,您可以定義可允許或拒絕哪些 S3 動作。S3 Express One Zone 動作對應於特定 API 操作。S3 Express One Zone 具有唯一的 IAM 命名空間,與 Amazon S3 的標準命名空間有所區別。這個命名空間是 s3express

當您允許 s3express:CreateSession 許可時,這可讓 CreateSession API 操作在存取區域端點 API (也就是物件層級) 操作時擷取工作階段權杖。這些工作階段權杖會傳回憑證,可用來授予所有其他區域端點 API 操作的存取權。因此,您不需要使用 IAM 政策授予存取區域 API 操作的許可。而是由工作階段權杖啟用存取權。

如需區域 (Zone) 和區域 (Region) 端點 API 操作的詳細資訊,請參閱 S3 Express One Zone 的網路功能。若要進一步了解 CreateSession API 操作,請參閱《Amazon Simple Storage Service API 參考》中的 CreateSession

您可在 IAM 政策陳述式的 Action 元素中指定以下動作。使用政策來授予在 AWS中執行操作的許可。在政策中使用動作時,通常會允許或拒絕存取相同名稱的 API 操作。不過,在某些情況下,單一動作可控制對多個 API 操作的存取。儲存貯體層級動作的存取權只能在 IAM 身分型政策 (使用者或角色) 中授予,無法在儲存貯體政策中授予。

S3 Express One Zone 的動作和條件索引鍵
動作 API 描述 存取層級 條件索引鍵

s3express:CreateBucket

CreateBucket

授予許可來建立新儲存貯體。

寫入

s3express:authType

s3express:LocationName

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:CreateSession CreateSession

授予許可來建立工作階段權杖,此權杖用於授予所有區域 (物件層級) API 操作的存取權,例如 PutObjectGetObject 等。

寫入

s3express:authType

s3express:SessionMode

s3express:ResourceAccount

s3express:signatureversion

s3express:signatureAge

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:DeleteBucket DeleteBucket

授予許可來刪除 URI 中命名的儲存貯體。

寫入

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:DeleteBucketPolicy DeleteBucketPolicy

授予許可,以在所指定的儲存貯體上刪除政策。

許可管理

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:GetBucketPolicy GetBucketPolicy

授予許可來傳回所指定儲存貯體的政策。

讀取

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:ListAllMyDirectoryBuckets ListDirectoryBuckets

授予許可來列出已驗證的請求發送者擁有的所有目錄儲存貯體。

清單

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:PutBucketPolicy PutBucketPolicy

授予許可來新增或取代儲存貯體上的儲存貯體政策。

許可管理

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

S3 Express One Zone 的條件索引鍵

S3 Express One Zone 定義了下列條件索引鍵,可在 IAM 政策的 Condition 元素中使用。您可以使用這些索引鍵來縮小套用政策陳述式的條件。

條件金鑰 描述 Type
s3express:authType

依身分驗證方法篩選存取權。若要限制傳入請求使用特定身分驗證方法,您可以使用此可選條件金鑰。例如,您可以使用此條件金鑰,僅允許 HTTP Authorization 標頭用在請求身分驗證中。

有效值REST-HEADERREST-QUERY-STRING

字串
s3express:LocationName

依特定可用區域 ID (AZ ID) 篩選對 CreateBucket API 操作的存取權,例如 usw2-az1

範例值:usw2-az1

字串
s3express:ResourceAccount

依資源擁有者 AWS 帳戶 ID 篩選存取。

若要限制使用者、角色或應用程式存取特定 AWS 帳戶 ID 所擁有的目錄值區,您可以使用aws:ResourceAccounts3express:ResourceAccount condition 索引鍵。您可以在 AWS Identity and Access Management (IAM) 身分識別政策或虛擬私有雲端 (VPC) 端點政策中使用此條件金鑰。例如,您可以使用此條件金鑰來限制 VPC 中的用戶端存取您不擁有的值區。

範例值:111122223333

字串
s3express:SessionMode

CreateSession API 操作請求的許可篩選存取權。根據預設,工作階段為 ReadWrite。您可以使用此條件索引鍵將存取限於 ReadOnly,或明確拒絕 ReadWrite 存取。如需詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的 S3 Express One Zone 的目錄儲存貯體政策範例CreateSession

有效值ReadWriteReadOnly

字串
s3express:signatureAge

依請求簽章的存在時間篩選存取權 (以毫秒為單位)。此條件僅適用於預先簽章 URL

在 AWS 簽名版本 4 中,簽名密鑰的有效期最多為七天。因此,簽章的有效期限也是最長七天。如需詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的「簽署請求簡介」。您可以使用此條件來進一步限制簽章存留期。

範例值:600000

數值
s3express:signatureversion

識別您要支援已驗證要求的 AWS 簽章版本。對於已驗證的請求,S3 Express One Zone 支援第 4 版簽署程序。

有效值:"AWS4-HMAC-SHA256"(識別簽名版本 4)

字串
s3express:TlsVersion

依用戶端所使用的 TLS 版本篩選存取權。

您可以使用s3:TlsVersion條件金鑰撰寫 IAM、虛擬私有雲端端點 (VPCE) 或儲存貯體政策,以根據用戶端所使用的 TLS 版本限制使用者或應用程式對目錄儲存貯體的存取。您也可以使用此條件索引鍵來撰寫需要最低 TLS 版本的政策。

範例值:1.3

數值
s3express:x-amz-content-sha256

依儲存貯體中未簽署的內容篩選存取權。

您可以使用此條件金鑰以不允許在儲存貯體中未簽署的內容。

當您使用第 4 版簽署程序時,針對使用 Authorization 標頭的請求,會在簽署計算中新增 x-amz-content-sha256 標頭,然後將其值設定為雜湊承載。

您可以在儲存貯體政策中使用此條件索引鍵,拒絕任何尚未簽署承載的上傳項目。例如:

有效值:UNSIGNED-PAYLOAD

字串

如何授權和驗證 API 操作

下表列出 S3 Express One Zone API 操作的授權和身分驗證資訊。對於每項 API 操作,資料表會顯示 API 操作名稱、IAM 動作、端點類型 (區域 (Region) 或區域 (Zone)) 以及授權機制 (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