

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

# 適用於 AWS AppSync 的身分型政策
<a name="security_iam_id-based-policy-examples"></a>

根據預設，使用者和角色沒有建立或修改 AWS AppSync 資源的許可。若要授予使用者對其所需資源執行動作的許可，IAM 管理員可以建立 IAM 政策。

如需了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策，請參閱《*IAM 使用者指南*》中的[建立 IAM 政策 (主控台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

如需由 AWS AppSync 定義的動作和資源類型的詳細資訊，包括每種資源類型的 ARNs 格式，請參閱*《服務授權參考*》中的[適用於 AWS AppSync 的動作、資源和條件索引鍵](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappsync.html)。

若要了解建立和設定 IAM 身分型政策的最佳實務，請參閱 [IAM 政策最佳實務](best-practices.md#security_iam_service-with-iam-policy-best-practices)。

如需適用於 AWS AppSync 的 IAM 身分型政策清單，請參閱 [AWS for AWS AppSync 的 受管政策](security_iam_policy_list.md)。

**Topics**
+ [使用 AWS AppSync 主控台](#security_iam_id-based-policy-examples-console)
+ [允許使用者檢視他們自己的許可](#security_iam_id-based-policy-examples-view-own-permissions)
+ [存取一個 Amazon S3 儲存貯體](#security_iam_id-based-policy-examples-access-one-bucket)
+ [根據標籤檢視 AWS AppSync *小工具*](#security_iam_id-based-policy-examples-view-widget-tags)
+ [AWS for AWS AppSync 的 受管政策](security_iam_policy_list.md)

## 使用 AWS AppSync 主控台
<a name="security_iam_id-based-policy-examples-console"></a>

若要存取 AWS AppSync 主控台，您必須擁有一組最低許可。這些許可必須允許您列出和檢視 中有關 AWS AppSync 資源的詳細資訊 AWS 帳戶。如果您建立比最基本必要許可更嚴格的身分型政策，則對於具有該政策的實體 (使用者或角色) 而言，主控台就無法如預期運作。

對於僅呼叫 AWS CLI 或 AWS API 的使用者，您不需要允許最低主控台許可。反之，只需允許存取符合他們嘗試執行之 API 操作的動作就可以了。

為了確保 IAM 使用者和角色仍然可以使用 AWS AppSync 主控台，請將 AWS AppSync `ConsoleAccess`或`ReadOnly` AWS 受管政策連接到實體。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[新增許可到使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

## 允許使用者檢視他們自己的許可
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

此範例會示範如何建立政策，允許 IAM 使用者檢視附加到他們使用者身分的內嵌及受管政策。此政策包含在主控台或使用 或 AWS CLI AWS API 以程式設計方式完成此動作的許可。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 存取一個 Amazon S3 儲存貯體
<a name="security_iam_id-based-policy-examples-access-one-bucket"></a>

在此範例中，您想要授予 AWS 帳戶中的 IAM 使用者存取其中一個 Amazon S3 儲存貯體 `examplebucket`。您也希望允許使用者新增、更新和刪除物件。

除了授予使用者 `s3:PutObject`、`s3:GetObject` 與 `s3:DeleteObject` 許可之外，政策也會授予 `s3:ListAllMyBuckets`、`s3:GetBucketLocation` 與 `s3:ListBucket` 許可。這些是主控台需要的額外許可。還需要 `s3:PutObjectAcl` 與 `s3:GetObjectAcl` 動作才能在主控台中複製、剪下與貼上物件。如需將許可授予使用者並使用主控台進行測試的範例逐步解說，請參閱[範例逐步解說：使用使用者政策來控制對儲存貯體的存取](https://docs.aws.amazon.com/AmazonS3/latest/userguide/walkthrough1.html)。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"ListBucketsInConsole",
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets"
         ],
         "Resource":"arn:aws:s3:::*"
      },
      {
         "Sid":"ViewSpecificBucketInfo",
         "Effect":"Allow",
         "Action":[
            "s3:ListBucket",
            "s3:GetBucketLocation"
         ],
         "Resource":"arn:aws:s3:::examplebucket"
      },
      {
         "Sid":"ManageBucketContents",
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:DeleteObject"
         ],
         "Resource":"arn:aws:s3:::examplebucket/*"
      }
   ]
}
```

------

## 根據標籤檢視 AWS AppSync *小工具*
<a name="security_iam_id-based-policy-examples-view-widget-tags"></a>

您可以在身分型政策中使用條件，根據標籤控制對 AWS AppSync 資源的存取。此範例示範如何建立允許檢視*小工具*的政策。不過，只有在*小工具*標籤`Owner`的值為該使用者的使用者名稱時，才會授予許可。此政策也會授予在主控台完成此動作的必要許可。

您可以將此政策連接到您帳戶中的 IAM 使用者。如果名為 的使用者`richard-roe`嘗試檢視 AWS AppSync *小工具*，則該*小工具*必須加上標籤 `Owner=richard-roe`或 `owner=richard-roe`。否則他便會被拒絕存取。條件標籤鍵 `Owner` 符合 `Owner` 和 `owner`，因為條件索引鍵名稱不區分大小寫。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素：條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。







# AWS for AWS AppSync 的 受管政策
<a name="security_iam_policy_list"></a>

若要新增許可給使用者、群組和角色，使用 AWS 受管政策比自行撰寫政策更容易。[建立 IAM 客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)需要時間和專業知識，而受管政策可為您的團隊提供其所需的許可。若要快速開始使用，您可以使用我們的 AWS 受管政策。這些政策涵蓋常見的使用案例，並可在您的 AWS 帳戶中使用。如需 AWS 受管政策的詳細資訊，請參閱《*IAM 使用者指南*》中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

AWS 服務會維護和更新 AWS 受管政策。您無法變更 AWS 受管政策中的許可。服務偶爾會將其他許可新增至 AWS 受管政策，以支援新功能。此類型的更新會影響已連接政策的所有身分識別 (使用者、群組和角色)。當新功能啟動或新操作可用時，服務最有可能更新 AWS 受管政策。服務不會從 AWS 受管政策移除許可，因此政策更新不會破壞您現有的許可。

此外， AWS 支援跨多個 服務之任務函數的受管政策。例如，**ReadOnlyAccess** AWS 受管政策提供對所有 AWS 服務和資源的唯讀存取權。當服務啟動新功能時， 會為新操作和資源 AWS 新增唯讀許可。如需任務職能政策的清單和說明，請參閱 *IAM 使用者指南*中[有關任務職能的AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。

## AWS 受管政策：AWSAppSyncInvokeFullAccess
<a name="security-iam-awsmanpol-AWSAppSyncInvokeFullAccess"></a>



使用 `AWSAppSyncInvokeFullAccess` AWS 受管政策，讓您的管理員透過主控台或獨立存取 AWS AppSync 服務。



您可將 `AWSAppSyncInvokeFullAccess` 政策連接到 IAM 身分。

### 許可詳細資訊
<a name="security-iam-awsmanpol-AWSAppSyncInvokeFullAccess-permissions"></a>

此政策包含以下許可。




+ `AWS AppSync` – 允許對 in AWS AppSync 中的所有資源進行完整管理存取



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "appsync:GraphQL",
                "appsync:GetGraphqlApi",
                "appsync:ListGraphqlApis",
                "appsync:ListApiKeys"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS 受管政策：AWSAppSyncSchemaAuthor
<a name="security-iam-awsmanpol-AWSAppSyncSchemaAuthor"></a>



使用 `AWSAppSyncSchemaAuthor` AWS 受管政策允許 IAM 使用者存取 ，以建立、更新和查詢其 GraphQL 結構描述。如需使用者可以如何處理這些許可的詳細資訊，請參閱 [使用 設計 GraphQL APIs AWS AppSync](designing-a-graphql-api.md)。



您可將 `AWSAppSyncSchemaAuthor` 政策連接到 IAM 身分。

### 許可詳細資訊
<a name="security-iam-awsmanpol-AWSAppSyncSchemaAuthor-permissions"></a>

此政策包含以下許可。




+ `AWS AppSync` – 允許下列動作：
  + 建立 GraphQL 結構描述
  + 允許建立、修改和刪除 GraphQL 類型、解析程式和函數
  + 評估請求和回應範本邏輯
  + 使用執行時間和內容評估程式碼
  + 將 GraphQL 查詢傳送至 GraphQL APIs
  + 擷取 GraphQL 資料



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "appsync:GraphQL",
                "appsync:CreateResolver",
                "appsync:CreateType",
                "appsync:DeleteResolver",
                "appsync:DeleteType",
                "appsync:GetResolver",
                "appsync:GetType",
                "appsync:GetDataSource",
                "appsync:GetSchemaCreationStatus",
                "appsync:GetIntrospectionSchema",
                "appsync:GetGraphqlApi",
                "appsync:ListTypes",
                "appsync:ListApiKeys",
                "appsync:ListResolvers",
                "appsync:ListDataSources",
                "appsync:ListGraphqlApis",
                "appsync:StartSchemaCreation",
                "appsync:UpdateResolver",
                "appsync:UpdateType",
                "appsync:TagResource",
                "appsync:UntagResource",
                "appsync:ListTagsForResource",
                "appsync:CreateFunction",
                "appsync:UpdateFunction",
                "appsync:GetFunction",
                "appsync:DeleteFunction",
                "appsync:ListFunctions",
                "appsync:ListResolversByFunction",
                "appsync:EvaluateMappingTemplate",
                "appsync:EvaluateCode"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS 受管政策：AWSAppSyncPushToCloudWatchLogs
<a name="security-iam-awsmanpol-AWSAppSyncPushToCloudWatchLogs"></a>



AWS AppSync 使用 Amazon CloudWatch 來監控應用程式的效能，方法是產生可用於疑難排解和最佳化 GraphQL 請求的日誌。如需詳細資訊，請參閱[使用 CloudWatch 監控和記錄 GraphQL API 資料](monitoring.md)。

使用 `AWSAppSyncPushToCloudWatchLogs` AWS 受管政策允許 AWS AppSync 將日誌推送至 IAM 使用者的 CloudWatch 帳戶。



您可將 `AWSAppSyncPushToCloudWatchLogs` 政策連接到 IAM 身分。

### 許可詳細資訊
<a name="security-iam-awsmanpol-AWSAppSyncPushToCloudWatchLogs-permissions"></a>

此政策包含以下許可。




+ `CloudWatch Logs` – Allow AWS AppSync 使用指定的名稱建立日誌群組和串流。 AWS AppSync 會將日誌事件推送至指定的日誌串流。



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS 受管政策：AWSAppSyncAdministrator
<a name="security-iam-awsmanpol-AWSAppSyncAdministrator"></a>



使用 `AWSAppSyncAdministrator` AWS 受管政策，允許您的管理員存取 AWS 主控台以外的所有 all AWS AppSync。



您可以將 `AWSAppSyncAdministrator` 連接到 IAM 實體。 AWS AppSync 也會將此政策連接至服務角色，以允許其代表您執行動作。

### 許可詳細資訊
<a name="security-iam-awsmanpol-AWSAppSyncAdministrator-permissions"></a>

此政策包含以下許可。




+ `AWS AppSync` – 允許 AWS AppSync 中所有資源的完整管理存取權
+ `IAM` – 允許下列動作：
  + 建立服務連結角色以允許 AWS AppSync 代表您分析其他 服務中的資源
  + 刪除服務連結角色
  + 將服務連結角色傳遞至其他 AWS 服務，以在稍後擔任該角色並代表您執行動作



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "appsync:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "appsync.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:AWSServiceName": "appsync.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:DeleteServiceLinkedRole",
                "iam:GetServiceLinkedRoleDeletionStatus"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/appsync.amazonaws.com/AWSServiceRoleForAppSync*"
        }
    ]
}
```

------

## AWS 受管政策：AWSAppSyncServiceRolePolicy
<a name="security-iam-awsmanpol-AWSAppSyncServiceRolePolicy"></a>



使用 `AWSAppSyncServiceRolePolicy` AWS 受管政策允許存取 AWS AppSync 使用或管理 AWS 的服務和資源。



您不得將 `AWSAppSyncServiceRolePolicy` 連接到 IAM 實體。此政策會連接到服務連結角色，允許 AWS AppSync 代表您執行動作。如需詳細資訊，請參閱[for AWS AppSync 的服務連結角色](security_iam_service-with-iam.md#security_iam_service-with-iam-roles-service-linked)。

### 許可詳細資訊
<a name="security-iam-awsmanpol-AWSAppSyncServiceRolePolicy-permissions"></a>

此政策包含以下許可。




+ `X-Ray` – AWS AppSync 會使用 AWS X-Ray 來收集應用程式內所提出請求的資料。如需詳細資訊，請參閱[使用 AWS X-Ray 追蹤 in AWS AppSync 中的請求](x-ray-tracing.md)。

  此政策允許下列動作：
  + 擷取抽樣規則及其結果
  + 將追蹤資料傳送至 X-Ray 協助程式



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords",
                "xray:GetSamplingTargets",
                "xray:GetSamplingRules",
                "xray:GetSamplingStatisticSummaries"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## AWS 受管政策的AWS AppSync 更新
<a name="security-iam-awsmanpol-updates"></a>



檢視自此服務開始追蹤這些變更以來，有關 for AWS AppSync AWS 受管政策更新的詳細資訊。如需此頁面變更的自動提醒，請訂閱 AWS AppSync 文件歷史記錄頁面上的 RSS 摘要。




| 變更 | 描述 | Date | 
| --- | --- | --- | 
|  [AWSAppSyncSchemaAuthor](#security-iam-awsmanpol-AWSAppSyncSchemaAuthor) - 更新現有政策  |  新增`EvaluateCode`政策動作，允許使用者評估具有執行時間和內容的程式碼。  | 2023 年 2 月 7 日 | 
|  [AWSAppSyncSchemaAuthor](#security-iam-awsmanpol-AWSAppSyncSchemaAuthor) - 更新現有政策  |  新增政策動作，以允許 API 的清單、取得、建立、更新和刪除函數。 新增`EvaluateMappingTemplate`政策動作，允許使用者評估請求和回應解析程式映射範本邏輯。 新增政策動作以允許資源標記。  | 2022 年 8 月 25 日 | 
|  AWS AppSync 開始追蹤變更  |  AWS AppSync 開始追蹤其 AWS 受管政策的變更。  | 2022 年 8 月 25 日 | 