

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

# 如何與 AWS Serverless Application Repository IAM 搭配使用
<a name="security_iam_service-with-iam"></a>

使用 IAM 管理對 的存取之前 AWS Serverless Application Repository，您應該了解哪些 IAM 功能可與 搭配使用 AWS Serverless Application Repository。

若要取得 IAM 運作方式的概觀，請參閱[《IAM 使用者指南》中的了解 IAM 運作方式](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html)。 **若要全面了解 AWS Serverless Application Repository 和其他 AWS 服務如何與 IAM 搭配使用，請參閱《IAM *使用者指南*》中的與 IAM [AWS 搭配使用的 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

**Topics**
+ [AWS Serverless Application Repository 以身分為基礎的政策](#security_iam_service-with-iam-id-based-policies)
+ [AWS Serverless Application Repository 應用程式政策](#security_iam_service-with-iam-resource-based-policies)
+ [以 AWS Serverless Application Repository 標籤為基礎的授權](#security_iam_service-with-iam-tags)
+ [AWS Serverless Application Repository IAM 角色](#security_iam_service-with-iam-roles)

## AWS Serverless Application Repository 以身分為基礎的政策
<a name="security_iam_service-with-iam-id-based-policies"></a>

使用 IAM 身分型政策，您可以指定允許或拒絕的動作和資源，以及在何種條件下允許或拒絕動作。 AWS Serverless Application Repository 支援特定動作、資源和條件金鑰。若要了解您在 JSON 政策中使用的所有元素，請參閱 *IAM 使用者指南*中的 [JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

以下顯示許可政策範例。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateApplication",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:CreateApplication"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateApplicationVersion",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:CreateApplicationVersion"
            ],
            "Resource": "arn:aws:serverlessrepo:us-east-1:111122223333:applications/application-name"
        }
    ]
}
```

------

 此政策具有兩個陳述式：




+  第一個陳述式會授予所有 AWS Serverless Application Repository 資源`serverlessrepo:CreateApplication`上 AWS Serverless Application Repository 動作的許可，如萬用字元 (\$1) 指定為 `Resource`值。
+ 第二個陳述式會使用 AWS Serverless Application Repository 應用程式的 Amazon Resource Name (ARN) 授予 AWS 資源`serverlessrepo:CreateApplicationVersion`上 AWS Serverless Application Repository 動作的許可。應用程式由 `Resource` 值指定。

此政策不指定 `Principal` 元素，因為您不會在以身分為基礎的政策中，指定取得許可的主體。當您將政策連接至使用者時，這名使用者即為隱含主體。當您將許可政策連接至 IAM 角色，該角色的信任政策中所識別的主體即取得許可。

 如需顯示所有 AWS Serverless Application Repository API 操作及其適用的 AWS 資源的資料表，請參閱 [AWS Serverless Application Repository API 許可：動作和資源參考](serverlessrepo-api-permissions-ref.md)。

### 動作
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

JSON 政策的 `Action` 元素描述您可以用來允許或拒絕政策中存取的動作。政策會使用動作來授予執行相關聯動作的許可。

中的政策動作在動作之前 AWS Serverless Application Repository 使用下列字首：`serverlessrepo:`。例如，若要授予某人使用 `SearchApplications` API 操作執行 AWS Serverless Application Repository 執行個體的 AWS Serverless Application Repository 許可，請在其政策中包含 `serverlessrepo:SearchApplications`動作。政策陳述式必須包含 `Action` 或 `NotAction` 元素。會 AWS Serverless Application Repository 定義自己的一組動作，描述您可以使用此服務執行的任務。

若要在單一陳述式中指定多個動作，請用逗號分隔，如下所示：

```
"Action": [
      "serverlessrepo:action1",
      "serverlessrepo:action2"
]
```

您也可以使用萬用字元 (\$1) 來指定多個動作。例如，若要指定開頭是 `List` 文字的所有動作，請包含以下動作：

```
"Action": "serverlessrepo:List*"
```



若要查看 AWS Serverless Application Repository 動作清單，請參閱《*IAM 使用者指南*》中的 [定義的動作 AWS Serverless Application Repository](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsserverlessapplicationrepository.html#awsserverlessapplicationrepository-actions-as-permissions)。

### Resources
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Resource` JSON 政策元素可指定要套用動作的物件。最佳實務是使用其 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 來指定資源。若動作不支援資源層級許可，使用萬用字元 (\$1) 表示該陳述式適用於所有資源。

```
"Resource": "*"
```

在 中 AWS Serverless Application Repository，主要 AWS 資源是 AWS Serverless Application Repository *application*. AWS Serverless Application Repository applications 具有與其相關聯的唯一 Amazon Resource Name (ARNs)，如下表所示。


****  

| AWS 資源類型 | Amazon Resource Name (ARN) 格式  | 
| --- | --- | 
| 應用程式 |  arn:*partition*:serverlessrepo:*region*:*account-id*:applications/*application-name*  | 

如需 ARNs 格式的詳細資訊，請參閱 [Amazon Resource Name (ARNs) AWS 和服務命名空間](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

以下是授予所有 AWS 資源之 `serverlessrepo:ListApplications`動作許可的範例政策。在目前的實作中， AWS Serverless Application Repository 不支援 AWS 使用某些 API 動作 AWS 的資源 ARNs（也稱為資源層級許可） 來識別特定資源。所以您必須指定萬用字元 (\$1)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListExistingApplications",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:ListApplications"
            ],
            "Resource": "*"
        }
    ]
}
```

------

如需顯示所有 AWS Serverless Application Repository API 動作及其適用的 AWS 資源的資料表，請參閱 [AWS Serverless Application Repository API 許可：動作和資源參考](serverlessrepo-api-permissions-ref.md)。

### 條件金鑰
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

 AWS Serverless Application Repository 不提供任何服務特定的條件金鑰，但支援使用一些全域條件金鑰。若要查看所有 AWS 全域條件金鑰，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

### 範例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



若要檢視 AWS Serverless Application Repository 身分型政策的範例，請參閱 [AWS Serverless Application Repository 以身分為基礎的政策範例](security_iam_id-based-policy-examples.md)。

## AWS Serverless Application Repository 應用程式政策
<a name="security_iam_service-with-iam-resource-based-policies"></a>

應用程式政策會決定指定主體或 principalOrg 可在 AWS Serverless Application Repository 應用程式上執行的動作。

您可以將許可新增至與 AWS Serverless Application Repository 應用程式相關聯的政策。連接到 AWS Serverless Application Repository 應用程式的許可政策稱為*應用程式政策*。[應用程式政策](security_iam_resource-based-policy-examples.md)是 [IAM 資源型政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)的延伸。主要資源是 AWS Serverless Application Repository 應用程式。您可以使用 AWS Serverless Application Repository 應用程式政策來管理應用程式部署許可。

AWS Serverless Application Repository 應用程式政策主要供發佈者使用，以授予許可給消費者部署其應用程式，以及相關操作，例如搜尋和檢視這些應用程式的詳細資訊。發佈者可以將應用程式許可設定為下列三種類別：
+ **私有** – 使用相同帳戶建立且尚未與任何其他帳戶共用的應用程式。您有權部署使用 AWS 帳戶建立的應用程式。
+ **私有共用** – 發佈者已明確與一組特定 AWS 帳戶或 AWS 組織共用的應用程式。您有權部署已與您的帳戶 AWS 或 AWS 組織共用的應用程式。
+ **公開共用** – 發佈者已與所有人共用的應用程式。您有權部署任何公開共用的應用程式。

您可以使用 AWS CLI、 AWS SDKs或 授予許可 AWS 管理主控台。

### 範例
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>

若要檢視管理 AWS Serverless Application Repository 應用程式政策的範例，請參閱 [AWS Serverless Application Repository 應用程式政策範例](security_iam_resource-based-policy-examples.md)。

## 以 AWS Serverless Application Repository 標籤為基礎的授權
<a name="security_iam_service-with-iam-tags"></a>

 AWS Serverless Application Repository 不支援根據標籤控制對資源或動作的存取。

## AWS Serverless Application Repository IAM 角色
<a name="security_iam_service-with-iam-roles"></a>

[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是您 AWS 帳戶中具有特定許可的實體。

### 搭配 使用暫時登入資料 AWS Serverless Application Repository
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

您可以使用暫時憑證來以聯合身分登入、擔任 IAM 角色，或是擔任跨帳戶角色。您可以透過呼叫 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 或 [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 等 AWS STS API 操作來取得臨時安全登入資料。

 AWS Serverless Application Repository 支援使用臨時登入資料。

### 服務連結角色
<a name="security_iam_service-with-iam-roles-service-linked"></a>

 AWS Serverless Application Repository 不支援服務連結角色。

### 服務角色
<a name="security_iam_service-with-iam-roles-service"></a>

 AWS Serverless Application Repository 不支援 服務角色。