AWS AppSync 的動作、資源和條件索引鍵 - 服務授權參考

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

AWS AppSync 的動作、資源和條件索引鍵

AWS AppSync (服務字首:appsync) 提供下列服務特定的資源、動作和條件內容索引鍵,可用於 IAM 許可政策。

參考資料:

AWS AppSync 定義的動作

您可在 IAM 政策陳述式的 Action 元素中指定以下動作。使用政策來授予在 AWS中執行操作的許可。在政策中使用動作時,通常會允許或拒絕存取相同名稱的 API 操作或 CLI 命令。不過,在某些情況下,單一動作可控制對多個操作的存取。或者,某些操作需要多種不同的動作。

動作資料表的存取層級欄說明動作的分類方式 (列出、讀取、許可管理或標記)。此分類可協助您了解在政策中使用某動作時,該動作授予您的存取層級。如需存取層級的詳細資訊,請參閱政策摘要中的存取層級

「動作」資料表的資源類型欄會指出每個動作是否支援資源層級的許可。如果此欄沒有值,您必須在政策陳述式的 Resource 元素中指定政策適用的所有資源 ("*")。如果資料欄包含資源類型,則您可以在具有該動作的陳述式中指定該類型的 ARN。如果動作具有一或多個必要資源,呼叫者必須具有對這些資源使用動作的許可。表格中的必要資源會以星號 (*) 表示。如果您使用 IAM 政策中的 Resource 元素限制資源存取,則每種必要的資源類型必須要有 ARN 或模式。某些動作支援多種資源類型。如果資源類型是選用 (未顯示為必要),則您可以選擇使用其中一種選用資源類型。

「動作」資料表的條件索引鍵欄包含您可以在政策陳述式的 Condition 元素中指定的索引鍵。如需有關與服務資源相關聯之條件索引鍵的詳細資訊,請參閱「資源類型」資料表的條件索引鍵欄。

動作資料表的相依動作欄會顯示成功呼叫動作所需的其他許可。除了 動作本身的許可之外,還可能需要這些許可。當動作指定相依動作時,這些相依性可能會套用至針對該動作定義的其他資源,而不只是資料表中列出的第一個資源。

注意

資源條件索引鍵會列在資源類型資料表中。您可以在「動作」資料表的資源類型 (*必填) 欄中找到適用於動作的資源類型連結。「資源類型」資料表中的資源類型包括條件索引鍵欄,其中包含套用至「動作」資料表中動作的資源條件索引鍵。

如需下表各欄的詳細資訊,請參閱動作資料表

動作 描述 存取層級 資源類型 (*必填項目) 條件索引鍵 相依動作
AssociateApi 准許將 GraphQL API 連接至 AppSync 中的自訂網域名稱 寫入

domain*

AssociateMergedGraphqlApi 准許將合併的 API 與來源 API 建立關聯 寫入

graphqlapi*

AssociateSourceGraphqlApi 准許將來源 API 與合併的 API 建立關聯 寫入

graphqlapi*

AssociateWebACL [僅限許可] 准許建立 Web ACL 和資源的關聯 寫入

api

graphqlapi

CreateApi 准許建立 API 寫入

aws:ResourceTag/${TagKey}

aws:RequestTag/${TagKey}

aws:TagKeys

iam:CreateServiceLinkedRole

CreateApiCache 准許在 AppSync 中建立 API 快取 寫入
CreateApiKey 准許建立唯一金鑰,您可以分配給執行 API 的用戶端 寫入
CreateChannelNamespace 准許建立頻道命名空間 寫入

channelNamespace*

aws:ResourceTag/${TagKey}

aws:RequestTag/${TagKey}

aws:TagKeys

CreateDataSource 准許建立資料來源 寫入
CreateDomainName 准許在 AppSync 中建立自訂網域名稱 寫入

aws:ResourceTag/${TagKey}

aws:RequestTag/${TagKey}

aws:TagKeys

CreateFunction 准許建立新函數 寫入
CreateGraphqlApi 准許建立 GraphQL API,這是最上層 AppSync 資源 寫入

aws:RequestTag/${TagKey}

aws:TagKeys

appsync:Visibility

iam:CreateServiceLinkedRole

CreateResolver 准許建立解析程式。解析程式會將傳入的請求轉換成資料來源可理解的格式,並將資料來源的回應轉換成 GraphQL 寫入
CreateType 准許建立類型 寫入
DeleteApi 准許刪除 API。這也會清除該 API 之下的每個 AppSync 資源 寫入

api*

aws:ResourceTag/${TagKey}

DeleteApiCache 准許刪除 AppSync 中的 API 快取 寫入
DeleteApiKey 准許刪除 API 金鑰 寫入
DeleteChannelNamespace 准許刪除頻道命名空間 寫入

channelNamespace*

aws:ResourceTag/${TagKey}

DeleteDataSource 准許刪除資料來源 寫入
DeleteDomainName 准許在 AppSync 中刪除自訂網域名稱 寫入

domain*

aws:ResourceTag/${TagKey}

DeleteFunction 准許刪除函數 寫入
DeleteGraphqlApi 准許刪除 GraphQL API。這也會清除該 API 之下的每個 AppSync 資源 寫入

graphqlapi*

aws:ResourceTag/${TagKey}

DeleteResolver 准許刪除解析程式 寫入
DeleteResourcePolicy [僅限許可] 准許移除資源政策 寫入
DeleteType 准許刪除類型 寫入
DisassociateApi 准許取消將 GraphQL API 連接至 AppSync 中的自訂域名稱 寫入

domain*

DisassociateMergedGraphqlApi 准許從來源 API 識別的合併 API 中移除關聯的來源 API 寫入

mergedApiAssociation*

DisassociateSourceGraphqlApi 准許從來源 API 識別的合併 API 中移除關聯的合併 API 寫入

sourceApiAssociation*

DisassociateWebACL [僅限許可] 准許取消 Web ACL 和資源的關聯 寫入

api

graphqlapi

EvaluateCode 准許使用執行時間和相關內容評估程式碼 讀取
EvaluateMappingTemplate 准許評估範本映射 讀取
EventConnect 准許連線至事件 API 寫入

api*

EventPublish 准許將事件發佈至頻道命名空間 寫入

channelNamespace*

EventSubscribe 准許訂閱頻道命名空間 寫入

channelNamespace*

FlushApiCache 准許在 AppSync 中清除 API 快取 寫入
GetApi 准許擷取 API 讀取

api*

aws:ResourceTag/${TagKey}

GetApiAssociation 准許讀取 AppSync 中的自訂網域名稱 - GraphQL API 關聯詳細資訊 讀取

domain*

GetApiCache 准許讀取 AppSync 中 API 快取的相關資訊 讀取
GetChannelNamespace 准許擷取頻道命名空間 讀取

channelNamespace*

aws:ResourceTag/${TagKey}

GetDataSource 准許擷取資料來源 讀取
GetDataSourceIntrospection 准許擷取資料來源自我檢查 讀取
GetDomainName 准許讀取 AppSync 中自訂網域名稱的相關資訊 讀取

domain*

aws:ResourceTag/${TagKey}

GetFunction 准許擷取函數 讀取
GetGraphqlApi 准許擷取 GraphQL API 讀取

graphqlapi*

aws:ResourceTag/${TagKey}

GetGraphqlApiEnvironmentVariables 准許擷取 GraphQL API 的環境變數 讀取
GetIntrospectionSchema 准許擷取 GraphQL API 的內部檢查結構描述 讀取
GetResolver 准許擷取解析程式 讀取
GetResourcePolicy [僅限許可] 准許讀取資源政策 讀取
GetSchemaCreationStatus 准許擷取結構描述建立操作的最新狀態 讀取
GetSourceApiAssociation 准許讀取有關合併 API 相關來源 API 的資訊 讀取

sourceApiAssociation*

GetType 准許擷取類型 讀取
GetWebACLForResource [僅限許可] 准許取得資源的相關聯 Web ACLs 讀取

api

graphqlapi

GraphQL [僅限許可] 准許將 GraphQL 查詢傳送至 GraphQL API 寫入

field*

graphqlapi*

ListApiKeys 准許列出指定 API 的 API 金鑰 清單
ListApis 准許列出 APIs 清單

aws:ResourceTag/${TagKey}

ListChannelNamespaces 准許列出頻道命名空間 清單

api*

aws:ResourceTag/${TagKey}

ListDataSources 准許列出指定 API 的資料來源 列出
ListDomainNames 准許列舉 AppSync 中的自訂網域名稱 列出

aws:ResourceTag/${TagKey}

ListFunctions 准許列出指定 API 的功能 列出
ListGraphqlApis 准許列出 GraphQL API 列出
ListResolvers 准許列出指定 API 和類型的解析程式 列出
ListResolversByFunction 准許列出與特定函數相關聯的解析程式 清單
ListResourcesForWebACL [僅限許可] 准許取得 Web ACL 的相關資源 清單
ListSourceApiAssociations 准許列出與指定合併 API 相關聯的來源 API 清單
ListTagsForResource 准許列出資源的標籤 讀取

api

channelNamespace

domain

graphqlapi

aws:ResourceTag/${TagKey}

ListTypes 准許列出指定 API 的類型 清單
ListTypesByAssociation 准許列出指定合併 API 和來源 API 關聯的類型 清單
PutGraphqlApiEnvironmentVariables 准許更新 GraphQL API 的環境變數 寫入
PutResourcePolicy [僅限許可] 准許設定資源政策 寫入
SetWebACL 准許設定 web ACL 許可管理
SourceGraphQL [僅限許可] 准許將 GraphQL 查詢傳送至合併 API 之來源 API 寫入

field*

graphqlapi*

StartDataSourceIntrospection 准許自我檢查資料來源 寫入
StartSchemaCreation 准許將新結構描述新增至 GraphQL API。這個操作為非同步 - GetSchemaCreationStatus 可以顯示操作何時完成 寫入
StartSchemaMerge 准許對指定合併 API 和關聯來源 API 啟動結構描述合併 寫入

sourceApiAssociation*

TagResource 准許標記資源 標記

api

channelNamespace

domain

graphqlapi

aws:RequestTag/${TagKey}

aws:ResourceTag/${TagKey}

aws:TagKeys

UntagResource 准許取消標記資源 標記

api

channelNamespace

domain

graphqlapi

aws:TagKeys

aws:ResourceTag/${TagKey}

UpdateApi 准許更新 API 寫入

api*

iam:CreateServiceLinkedRole

aws:ResourceTag/${TagKey}

UpdateApiCache 准許在 AppSync 中更新 API 快取 寫入
UpdateApiKey 准許更新指定 API 的 API 金鑰 寫入
UpdateChannelNamespace 准許更新頻道命名空間 寫入

channelNamespace*

aws:ResourceTag/${TagKey}

UpdateDataSource 准許更新資料來源 寫入
UpdateDomainName 准許更新 AppSync 中的自訂網域名稱 寫入

domain*

aws:ResourceTag/${TagKey}

UpdateFunction 准許更新現有函數 寫入
UpdateGraphqlApi 准許更新 GraphQL API 寫入

graphqlapi*

iam:CreateServiceLinkedRole

aws:ResourceTag/${TagKey}

UpdateResolver 准許更新解析程式 寫入
UpdateSourceApiAssociation 准許更新合併 API 來源 API 關聯 寫入

sourceApiAssociation*

UpdateType 准許更新類型 寫入

AWS AppSync 定義的資源類型

此服務會定義下列資源類型,並可用在 IAM 許可政策陳述式的 Resource 元素中。動作表格中的每個動作都代表可使用該動作指定的資源類型。資源類型也能定義您可以在政策中包含哪些條件索引鍵。這些索引鍵都會顯示在「資源類型」資料表的最後一欄。如需下表各欄的詳細資訊,請參閱資源類型資料表

資源類型 ARN 條件索引鍵
datasource arn:${Partition}:appsync:${Region}:${Account}:apis/${GraphQLAPIId}/datasources/${DatasourceName}
domain arn:${Partition}:appsync:${Region}:${Account}:domainnames/${DomainName}

aws:ResourceTag/${TagKey}

graphqlapi arn:${Partition}:appsync:${Region}:${Account}:apis/${GraphQLAPIId}

aws:ResourceTag/${TagKey}

field arn:${Partition}:appsync:${Region}:${Account}:apis/${GraphQLAPIId}/types/${TypeName}/fields/${FieldName}
type arn:${Partition}:appsync:${Region}:${Account}:apis/${GraphQLAPIId}/types/${TypeName}
function arn:${Partition}:appsync:${Region}:${Account}:apis/${GraphQLAPIId}/functions/${FunctionId}
sourceApiAssociation arn:${Partition}:appsync:${Region}:${Account}:apis/${MergedGraphQLAPIId}/sourceApiAssociations/${Associationid}
mergedApiAssociation arn:${Partition}:appsync:${Region}:${Account}:apis/${SourceGraphQLAPIId}/mergedApiAssociations/${Associationid}
api arn:${Partition}:appsync:${Region}:${Account}:apis/${ApiId}

aws:ResourceTag/${TagKey}

channelNamespace arn:${Partition}:appsync:${Region}:${Account}:apis/${ApiId}/channelNamespace/${ChannelNamespaceName}

aws:ResourceTag/${TagKey}

AWS AppSync 的條件索引鍵

AWS AppSync 定義下列條件索引鍵,可用於 IAM 政策的 Condition元素。您可以使用這些索引鍵來縮小套用政策陳述式的條件。如需下表各欄的詳細資訊,請參閱條件索引鍵表

若要檢視所有 服務可用的全域條件索引鍵,請參閱AWS 全域條件內容索引鍵

條件索引鍵 描述 Type
appsync:Visibility 依 API 的可見性篩選存取權 String
aws:RequestTag/${TagKey} 依請求中的標籤鍵值組篩選存取權 字串
aws:ResourceTag/${TagKey} 依連接到資源的標籤鍵值對篩選存取權 字串
aws:TagKeys 依請求中是否存在標籤索引鍵來篩選存取 ArrayOfString