

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

# 適用於 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)。





