AWS AppSync のアクション、リソース、および条件キー - サービス認可リファレンス

AWS AppSync のアクション、リソース、および条件キー

AWS AppSync (サービスプレフィックス: appsync) では、IAM アクセス許可ポリシーで使用できるように、次のサービス固有のリソース、アクション、および条件コンテキストキーが用意されています。

参照:

AWS AppSync で定義されるアクション

IAM ポリシーステートメントの Action エレメントでは、以下のアクションを指定できます。ポリシーを使用して、AWS でオペレーションを実行するアクセス許可を付与します。ポリシーでアクションを使用する場合は、通常、同じ名前の API オペレーションまたは CLI コマンドへのアクセスを許可または拒否します。ただし、場合によっては、1 つのアクションによって複数のオペレーションへのアクセスが制御されます。あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。

アクションテーブルの [アクセスレベル] 列では、アクションの指定方法 (リスト、読み取り、アクセス許可管理、タグ付け) について説明します。このように分類することで、ポリシーで使用する際にアクションで付与するアクセスレベルを理解しやすくなります。アクセスレベルの詳細については、「ポリシー概要内のアクセスレベル」を参照してください。

[アクション] テーブルの [リソースタイプ] 列は、各アクションがリソースレベルの許可をサポートしているかどうかを示します。この列に値がない場合は、ポリシーステートメントの Resource 要素で、ポリシーが適用されるすべてのリソース (「*」) を指定する必要があります。列にリソースタイプが含まれる場合、そのアクションを含むステートメントでそのタイプの ARN を指定できます。アクションで 1 つ以上のリソースが必須となっている場合、呼び出し元には、それらのリソースを伴うアクションを使用するための許可が付与されている必要があります。必須リソースは、アスタリスク (*) でテーブルに示されています。IAM ポリシーの Resource 要素でリソースアクセスを制限する場合は、必要なリソースタイプごとに ARN またはパターンを含める必要があります。一部のアクションでは、複数のリソースタイプがサポートされています。リソースタイプがオプション (必須として示されていない) の場合、オプションのリソースタイプのいずれかを使用することを選択できます。

[アクション] テーブルの [条件キー] 列には、ポリシーステートメントの Condition 要素で指定できるキーが含まれます。サービスのリソースに関連付けられている条件キーの詳細については、[リソースタイプ] テーブルの [条件キー] 列を参照してください。

Actions テーブルの [依存アクション] 列には、アクションを正常に呼び出すために必要な追加のアクセス許可が表示されます。これらのアクセス許可は、アクション自体のアクセス許可に加えて必要になる場合があります。アクションが依存アクションを指定すると、それらの依存関係は、テーブルにリストされている最初のリソースだけでなく、そのアクションに定義された追加のリソースに適用される場合があります。

注記

リソース条件キーは、リソースタイプテーブルに一覧表示されています。アクションに適用されるリソースタイプへのリンクは、[アクション] テーブルの [リソースタイプ (* 必須)] 列にあります。[リソースタイプ] テーブルのリソースタイプには、[アクション] テーブルのアクションに適用されるリソース条件キーである、[条件キー] 列が含まれています。

以下の表の列の詳細については、「アクションテーブル」を参照してください。

アクション 説明 アクセスレベル リソースタイプ (* 必須) 条件キー 依存アクション
AssociateApi AppSync でカスタムドメイン名に GraphQL API をアタッチする許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。

domain*

AssociateMergedGraphqlApi マージされた API をソース API に関連付ける許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。

graphqlapi*

AssociateSourceGraphqlApi ソース API をマージされた 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 最上位の AppSync リソースである GraphQL API を作成する許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。

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 Resolver を削除する許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。
DeleteResourcePolicy [アクセス許可のみ] リソースポリシーを削除する許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。
DeleteType タイプを削除する許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。
DisassociateApi AppSync でカスタムドメイン名への GraphQL API のアタッチを解除するアクセス許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。

domain*

DisassociateMergedGraphqlApi ソース API によって識別されるマージされた API から、関連付けられたソース API を削除する許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。

mergedApiAssociation*

DisassociateSourceGraphqlApi マージされた API によって識別されるマージされた API から、関連付けられたソース API を削除する許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。

sourceApiAssociation*

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 タイプを取得する許可を付与 読み取り
GraphQL [アクセス許可のみ] GraphQL クエリを GraphQL API に送信する許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。

field*

graphqlapi*

ListApiKeys 特定の API の API キーを一覧表示する許可を付与 リスト
ListApis API を一覧表示する許可を付与 リスト

aws:ResourceTag/${TagKey}

ListChannelNamespaces チャネル名前空間を一覧表示する許可を付与 リスト

api*

aws:ResourceTag/${TagKey}

ListDataSources 特定の API のデータソースを一覧表示する許可を付与 リスト
ListDomainNames AppSync でカスタムドメイン名を列挙する許可を付与 リスト

aws:ResourceTag/${TagKey}

ListFunctions 特定の API の関数を一覧表示する許可を付与 リスト
ListGraphqlApis GraphQL API を一覧表示する許可を付与 リスト
ListResolvers 特定の API およびタイプのリゾルバーを一覧表示するアクセス権限を付与 リスト
ListResolversByFunction 特定の関数に関連付けられたリゾルバーを一覧表示する許可を付与 リスト
ListSourceApiAssociations 特定のマージされた API に関連付けられたソース API を一覧表示する許可を付与 リスト
ListTagsForResource リソースのタグを一覧表示する許可を付与 読み取り

api

channelNamespace

domain

graphqlapi

aws:ResourceTag/${TagKey}

ListTypes 特定の API のタイプを一覧表示する許可を付与 リスト
ListTypesByAssociation 特定のマージされた API とソース API の関連付けのタイプを一覧表示する許可を付与 リスト
PutGraphqlApiEnvironmentVariables GraphQL API の環境変数を更新する許可を付与する あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。
PutResourcePolicy [アクセス許可のみ] ソースポリシーを設定する許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。
SetWebACL ウェブ ACL を設定する許可を付与 権限の管理
SourceGraphQL [アクセス許可のみ] マージされた API のソース API に GraphQL クエリを送信する許可を付与 あるいは、いくつかのオペレーションはいくつかの異なるアクションを必要とします。

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 の可視性によりアクセスをフィルタリングします 文字列
aws:RequestTag/${TagKey} リクエスト内のタグキーと値のペアによるアクセスをフィルタリングします 文字列
aws:ResourceTag/${TagKey} リソースにアタッチされているタグのキーと値のペアでアクセスをフィルタリングします 文字列
aws:TagKeys リクエスト内のタグキーが存在するかどうかでアクセスをフィルタリングします ArrayOfString