存取控制 - AWS Data Exchange 使用者指南

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

存取控制

若要建立、更新、刪除或列出 AWS Data Exchange 資源,您需要執行作業和存取對應資源的權限。若要以程式設計方式執行作業,您還需要有效的存取金鑰。

管理資 AWS Data Exchange 源存取權限概觀

每個 AWS 資源都擁有 AWS 帳戶,建立或存取資源的權限由權限原則控制。帳戶管理員可以將權限原則附加到使用者、群組和角色。某些服務 (例如 AWS Lambda) 還支援將許可政策附加至資源。

注意

「帳戶管理員」 (或管理員) 是具有管理員權限的使用者。如需詳細資訊,請參閱 IAM 最佳實務

若要提供存取權,請新增權限至您的使用者、群組或角色:

  • 使用者和群組位於 AWS IAM Identity Center:

    建立權限合集。請按照 AWS IAM Identity Center 使用者指南 中的 建立權限合集 說明進行操作。

  • 透過身分提供者在 IAM 中管理的使用者:

    建立聯合身分的角色。請按照 IAM 使用者指南為第三方身分提供者 (聯合) 建立角色 中的指示進行操作。

  • IAM 使用者:

AWS Data Exchange 資源與營運

在中 AWS Data Exchange,有兩種不同類型的主要資源具有不同的控制平面:

  • 的主要資源 AWS Data Exchange 是資料集工作。 AWS Data Exchange 還支持修訂資產

  • 為了促進供應商和訂閱者之間的交易, AWS Data Exchange 還使用 AWS Marketplace 概念和資源,包括產品,優惠和訂閱。您可以使用 AWS Marketplace Catalog API 或 AWS Data Exchange 主控台來管理您的產品、優惠、訂閱要求和訂閱。

了解資源所有權

無論是誰建立資源,都 AWS 帳戶 擁有在帳戶中建立的資源。具體來說,資源擁有者是驗證資源建立要求的主參與者實體 (亦即 AWS 帳戶 根使用者、使用者或角色) 的擁有者。 AWS 帳戶 下列範例說明其如何運作。

資源擁有權

AWS 帳戶 具有正確許可的任何 IAM 實體都可以建立 AWS Data Exchange 資料集。IAM 實體建立資料集時,其 AWS 帳戶 擁有資料集。已發佈的資料產品可以包含僅由建立資料產品的資料集所擁有的資料集。 AWS 帳戶

若要訂閱 AWS Data Exchange 產品,IAM 實體除了、和 aws-marketplace:AcceptAgreementRequest IAM 許可之外 AWS Data Exchange,還需要使用許可 AWS Marketplace (假設他們通過任何相關訂閱驗證)。aws-marketplace:subscribe aws-marketplace:aws-marketplace:CreateAgreementRequest身為訂閱者,您的帳戶擁有授權資料集的讀取權限;不過,帳戶並不擁有授權的資料集。任何匯出至 Amazon S3 的有權資料集均由訂閱者擁有 AWS 帳戶。

管理資源存取

本節討論在的內容中使用 IAM AWS Data Exchange。它不提供 IAM 服務的詳細資訊。如需完整的 IAM 文件,請參閱IAM 使用者指南中的什麼是 IAM。如需 IAM 政策語法和說明的相關資訊,請參閱 IAM 使用者指南中的 AWS IAM 政策參考

許可政策描述誰可以存取哪些資源。以下部分說明用來建立許可政策的選項。

連接到 IAM 身分的政策稱為身分類型政策 (IAM 政策)。附加至資源的策略稱為以資源為基礎的策略。 AWS Data Exchange 僅支援以身分識別為基礎的政策 (IAM 政策)。

基於身份的策略和權限

AWS Data Exchange 提供四種受管理的原則:

  • AWSDataExchangeFullAccess

  • AWSDataExchangeSubscriberFullAccess

  • AWSDataExchangeProviderFullAccess

  • AWSDataExchangeReadOnly

如需有關這些原則及其權限的詳細資訊,請參閱AWS 受管理的政策 AWS Data Exchange

Amazon S3 許可

將資產從 Amazon S3 匯入到時 AWS Data Exchange,您需要寫入 AWS Data Exchange 服務 S3 儲存貯體的許可。同樣地,將資產從 Amazon S3 匯出 AWS Data Exchange 到 Amazon S3 時,您需要從 AWS Data Exchange 服務 S3 儲存貯體讀取的許可。這些權限包含在前面提到的策略中,但是您也可以建立自己的策略,以允許您希望使用者能夠執行的操作。您可以將這些權限限定為其名稱aws-data-exchange中包含的值區,並使用 CalledVia權限限制代表主體發出 AWS Data Exchange 的要求的使用權限。

例如,您可以建立原則,以允許匯入和匯出,其中包含 AWS Data Exchange 這些權限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::*aws-data-exchange*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia":[ "dataexchange.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::*aws-data-exchange*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia":[ "dataexchange.amazonaws.com" ] } } }, ] }

這些權限允許提供者使用匯入和匯出 AWS Data Exchange。該策略包括以下權限和限制:

  • s3: PutObjects3: PutObjectAcl — 這些許可僅限aws-data-exchange於其名稱中包含的 S3 儲存貯體。這些許可允許提供者在從 Amazon S3 匯入時寫入 AWS Data Exchange 服務儲存貯體。

  • s3: GetObject — 此權限僅限於其名稱aws-data-exchange中包含的 S3 儲存貯體。此權限允許客戶在從 Amazon S3 匯出時讀取 AWS Data Exchange 服務儲存貯體。 AWS Data Exchange

  • 這些權限僅限於搭配 IAM CalledVia 條件使 AWS Data Exchange 用所提出的請求。這允許 S3 PutObject 許可僅用於 AWS Data Exchange 控制台或 API 的內容中。

  • AWS Lake FormationAWS Resource Access Manager(AWS RAM) 若要使用 AWS Lake Formation 資料集,您必須接受與訂閱相關的每個淨新提供者的 AWS RAM 共用邀請。若要接受 AWS RAM 共用邀請,您必須擔任具有接受 AWS RAM 共用邀請之權限的角色。若要深入了解 AWS 受管政策的方式 AWS RAM,請參閱的受管政策 AWS RAM。

  • 若要建立 AWS Lake Formation 資料集,您需要建立具有允許 IAM 將角色傳遞給的假定角色的資料集 AWS Data Exchange。這將允許 AWS Data Exchange 代表您授予和撤銷對 Lake Formation 資源的權限。請參閱以下範例政策:

    { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "dataexchange.amazonaws.com" } } }
注意

您的使用者可能還需要其他許可,才能讀取或寫入您自己的 S3 儲存貯體和本範例中未涵蓋的物件。

如需使用者、群組、角色和許可的詳細資訊,請參閱《IAM 使用者指南》中的身分 (使用者、群組和角色)

資源型政策

AWS Data Exchange 不支援以資源為基礎的政策。

其他服務 (例如 Amazon S3) 確實支援以資源為基礎的許可政策。例如,您可以將政策連接至 S3 儲存貯體,以管理該儲存貯體的存取許可。

指定政策元素:動作、效果和主體

若要使用 AWS Data Exchange,您的使用者許可必須在 IAM 政策中定義。

以下是最基本的政策元素:

  • 資源 – 在政策中,您可以使用 Amazon Resource Name (ARN) 來識別要套用政策的資源。所有 AWS Data Exchange API 作業都支援資源層級權限 (RLP),但 AWS Marketplace 動作不支援 RLP。如需詳細資訊,請參閱 AWS Data Exchange 資源與營運

  • 動作:使用動作關鍵字識別您要允許或拒絕的資源操作。

  • 效果 — 您可以在使用者請求特定動作時指定效果 (允許或拒絕)。如果您未明確授予存取 (允許) 資源,則隱含地拒絕存取。您也可以明確拒絕資源存取,這樣做可確保使用者無法存取資源,即使不同政策授予存取也是一樣。

  • 委託人:在身分識別型政策 (IAM 政策) 中,政策所連接的使用者就是隱含委託人。對於以資源為基礎的策略,您可以指定要接收權限的使用者、帳戶、服務或其他實體 (僅適用於以資源為基礎的策略)。 AWS Data Exchange 不支援以資源為基礎的政策。

如需 IAM 政策語法和說明的詳細資訊,請參閱 IAM 使用者指南中的 AWS IAM 政策參考

在政策中指定條件

當您授與許可時,您可以使用 IAM 政策語言指定政策生效時間的條件。使用 AWS Data Exchange、CreateJobStartJobGetJob、和 CancelJob API 作業支援條件式權限。您可以在JobType層級提供權限。

AWS Data Exchange 條件鍵參考
條件金鑰 Description (描述) Type
"dataexchange:JobType":"IMPORT_ASSETS_FROM_S3" 將許可範圍限制為從 Amazon S3 匯入資產的任務。 字串
"dataexchange:JobType":IMPORT_ASSETS_FROM_LAKE_FORMATION_TAG_POLICY" (Preview) 將權限範圍設定為從中匯入資產的工作 AWS Lake Formation (預覽) 字串
"dataexchange:JobType":"IMPORT_ASSET_FROM_SIGNED_URL" 將權限範圍設定為從簽署的 URL 匯入資產的工作。 字串
"dataexchange:JobType":"IMPORT_ASSET_FROM_REDSHIFT_DATA_SHARES" 將許可範圍限制為從 Amazon Redshift 匯入資產的任務。 字串
"dataexchange:JobType":"IMPORT_ASSET_FROM_API_GATEWAY_API" 將許可範圍限制為從 Amazon API Gateway 匯入資產的任務。 字串
"dataexchange:JobType":"EXPORT_ASSETS_TO_S3" 將資產匯出到 Amazon S3 的任務的權限範圍。 字串
"dataexchange:JobType":"EXPORT_ASSETS_TO_SIGNED_URL" 將權限範圍設定為將資產匯出至已簽署 URL 的工作。 字串
"dataexchange:JobType":EXPORT_REVISIONS_TO_S3" 將許可範圍限制為將修訂匯出到 Amazon S3 的任務。 字串

如需使用政策語言指定條件的詳細資訊,請參閱IAM 使用者指南中的條件

若要表示條件,請使用預先定義的條件索引鍵。 AWS Data Exchange 具有 API 操作的JobType條件。但是,您可以視需要使用 AWS 廣泛的條件鍵。如需 AWS 寬金鑰的完整清單,請參閱 IAM 使用者指南