

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

# 簡化程式設計存取 AWS 服務 的資訊
<a name="service-reference"></a>

AWS 以 JSON 格式提供服務參考資訊，以簡化政策管理工作流程的自動化。透過 服務參考資訊，您可以從 AWS 服務 機器可讀取的檔案跨 存取可用的操作、動作、資源和條件索引鍵。服務參考資訊包含授權詳細資訊以外的中繼資料，包括 IAM 動作上次存取資訊和 IAM Access Analyzer 政策產生資料。

安全管理員可以建立護欄，開發人員可以透過識別每個 的可用動作、資源和條件索引鍵來確保應用程式的適當存取 AWS 服務。 AWS 提供 的服務參考資訊 AWS 服務 ，可讓您將中繼資料整合到您的政策管理工作流程中。
+ 如需用於 IAM 政策的動作、資源和條件索引鍵的庫存，請參閱 [的服務授權參考](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)頁面 AWS 服務。服務授權參考中的共用服務字首之服務的動作、資源和條件索引鍵可以分割為多個頁面。
+ 如需顯示 IAM 動作上次存取資訊的 AWS 服務 和 動作清單，請參閱《IAM [使用者指南》中的 IAM 動作上次存取的資訊服務和動作](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed-action-last-accessed.html)。
+ 如需 IAM Access Analyzer 產生具有動作層級資訊之政策的 AWS 服務 和 動作清單，請參閱《IAM [使用者指南》中的 IAM Access Analyzer 政策產生服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation-action-last-accessed-support.html)。

服務授權參考中呈現的內容可能會以不同方式呈現，或包含不同的中繼資料。如需詳細資訊，請參閱[其他欄位定義](#service-reference-additional-field-definitions)。

服務參考資訊也提供操作的中繼資料，包括 SDKs 中授權動作和方法名稱的資訊。

條件索引鍵值的其他內容可能可用於協助界定許可範圍。例如，當 操作`iam:PassRole`授權動作時，`iam:PassedToService`可能會出現 的值。

並非所有 服務都支援此操作對動作映射。尚不支援此映射的服務會省略 AuthorizedAction 屬性。此外， 操作的授權動作資訊不包含使用[轉送存取工作階段](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)代表您呼叫的操作可能需要的許可。

**注意**  
服務參考資訊的變更最多可能需要 24 小時才會反映在服務的中繼資料清單中。

**存取 AWS 服務 參考資訊**

1. 導覽至服務參考資訊，以存取可用的 AWS 服務 參考資訊的 清單。

   主要進入點有兩個：

   [http://servicereference.us-east-1.amazonaws.com/](http://servicereference.us-east-1.amazonaws.com/) 會顯示可用的 AWS 服務 參考資訊的清單。

   下列範例顯示其個別參考資訊的部分服務和 URLs 清單：

   ```
   [ 
       { 
           "service": "s3", 
           "url": "https://servicereference.us-east-1.amazonaws.com/v1/s3/s3.json" 
       }, 
       { 
           "service": "dynamodb", 
           "url": "https://servicereference.us-east-1.amazonaws.com/v1/dynamodb/dynamodb.json" 
       }, 
       …
   ]
   ```

   [https://servicereference.us-east-1.amazonaws.com/v1/mapping.json](https://servicereference.us-east-1.amazonaws.com/v1/mapping.json) 會顯示從 SDK 服務到服務參考中位置的映射，該資訊可在其中找到。

   下列範例顯示部分映射清單：

   ```
   {
     "SDK" : {
       "Python" : {
         "Boto3" : {
           "accessanalyzer" : {
             "service" : "access-analyzer",
             "url" : "https://servicereference.us-east-1.amazonaws.com/v1/access-analyzer/access-analyzer.json"
           },
           "account" : {
             "service" : "account",
             "url" : "https://servicereference.us-east-1.amazonaws.com/v1/account/account.json"
           },
           "amp" : {
             "service" : "aps",
             "url" : "https://servicereference.us-east-1.amazonaws.com/v1/aps/aps.json"
           },
           ...
         }
       }
     }
   }
   ```

1. 選擇服務並導覽至服務 `url` 欄位中的服務資訊頁面，以檢視服務的動作、資源和條件索引鍵清單。

   下列範例顯示 Amazon S3 的部分服務參考資訊清單：

   ```
   {
       "Name": "s3",
       "Actions": [
           {
               "Name": "GetObject",
               "ActionConditionKeys": [
                   "s3:AccessGrantsInstanceArn",
                   "s3:AccessPointNetworkOrigin",
                   "s3:DataAccessPointAccount",
                   "s3:DataAccessPointArn",
                   "s3:ExistingObjectTag/key",
                   "s3:ResourceAccount",
                   "s3:TlsVersion",
                   "s3:authType",
                   "s3:if-match",
                   "s3:if-none-match",
                   "s3:signatureAge",
                   "s3:signatureversion",
                   "s3:x-amz-content-sha256"
               ],
               "Annotations" : {
               "Properties" : {
                       "IsList" : false,
                       "IsPermissionManagement" : false,
                       "IsTaggingOnly" : false,
                       "IsWrite" : false
                   }
               },
               "Resources": [
                   {
                       "Name": "object"
                   }
               ],
               "SupportedBy" : {
                   "IAM Access Analyzer Policy Generation" : false,
                   "IAM Action Last Accessed" : false
               }
           },
           {
               "Name": "ListBucket",
               "ActionConditionKeys": [
                   "s3:AccessGrantsInstanceArn",
                   "s3:AccessPointNetworkOrigin",
                   "s3:DataAccessPointAccount",
                   "s3:DataAccessPointArn",
                   "s3:ResourceAccount",
                   "s3:TlsVersion",
                   "s3:authType",
                   "s3:delimiter",
                   "s3:max-keys",
                   "s3:prefix",
                   "s3:signatureAge",
                   "s3:signatureversion",
                   "s3:x-amz-content-sha256"
               ],
               "Annotations" : {
                   "Properties" : {
                       "IsList" : true,
                       "IsPermissionManagement" : false,
                       "IsTaggingOnly" : false,
                       "IsWrite" : false
                   }
               },
               "Resources": [
                   {
                       "Name": "bucket"
                   }
               ],
               "SupportedBy" : {
                   "IAM Access Analyzer Policy Generation" : false,
                   "IAM Action Last Accessed" : false
               }
           },
           ...
       ],
       "ConditionKeys": [
           {
               "Name": "s3:TlsVersion",
               "Types": [
                   "Numeric"
               ]
           },
           {
               "Name": "s3:authType",
               "Types": [
                   "String"
               ]
           },
           ...
       ],
       "Operations": [
           {
               "Name" : "GetObject",
               "AuthorizedActions" : [
                   {
                       "Name" : "GetObject",
                       "Service" : "s3"
                   }, {
                       "Name" : "GetObject",
                       "Service" : "s3-object-lambda"
                   }, {
                       "Name" : "GetObjectLegalHold",
                       "Service" : "s3"
                   }, {
                       "Name" : "GetObjectRetention",
                       "Service" : "s3"
                   }, {
                       "Name" : "GetObjectTagging",
                       "Service" : "s3"
                   }, {
                       "Name" : "GetObjectVersion",
                       "Service" : "s3"
                   }
               ],
               "SDK" : [
                   {
                       "Name" : "s3",
                       "Method" : "get_object",
                       "Package" : "Boto3"
                   }
               ]
           },
           ...
       ],
       "Resources": [
           {
               "Name": "accesspoint",
               "ARNFormats": [
                   "arn:${Partition}:s3:${Region}:${Account}:accesspoint/${AccessPointName}"
               ]
           },
           {
               "Name": "bucket",
               "ARNFormats": [
                   "arn:${Partition}:s3:::${BucketName}"
               ]
           }
           ...
       ],
       "Version": "v1.4"
   }
   ```

1. 從服務 URL 下載 JSON 檔案，以用於您的政策撰寫工作流程。

## 詞彙表
<a name="service-reference-glossary"></a>
+ 操作 - 可呼叫的 API，通常透過 SDK
+ 動作 - 執行 操作時授權的許可

## 其他欄位定義
<a name="service-reference-additional-field-definitions"></a>

**動作屬性**提供有關服務動作的其他中繼資料，以協助根據其許可範圍進行分類。這些屬性位於每個動作的 `Annotations` 欄位下。中繼資料包含四個布林值：
+ `IsList` – 提供探索和列出資源的許可，包括基本中繼資料，而無需存取資源內容。

  **範例** – 此屬性`true`適用於 Amazon S3 `ListBucket`動作，允許使用者檢視儲存貯體清單，而無需自行存取物件。
+ `IsPermissionManagement` – 提供修改 IAM 許可或存取登入資料的許可。

  **範例** – 此屬性`true`適用於大多數 IAM 和 AWS Organizations 動作，以及 `PutBucketPolicy`和 等 Amazon S3 動作`DeleteBucketPolicy`。
+ `IsTaggingOnly` – 僅提供修改標籤的許可。

  **範例** – 此屬性`true`適用於 IAM 動作`TagRole`和 `UntagRole`，而此屬性`false`適用於 ，`CreateRole`因為它提供超出標記範圍的許可。
+ `IsWrite` – 提供修改 資源的許可，其中可能包括標籤修改。

  **範例** – 此屬性`true`適用於 Amazon S3 動作 `CreateBucket`、 和 `DeleteBucket`，`PutObject`因為它們允許資源修改。

**注意**  
這些屬性不是互斥的。動作可能將多個屬性設定為 `true`。  
所有屬性也可能是 `false`，如 Amazon S3 `GetObject`的動作所示。這表示動作只會授予物件的讀取許可。

這些屬性可用來產生 服務的洞見。下列範例顯示具有 `s3`字首的哪些許可允許變更資源：

```
> curl https://servicereference.us-east-1.amazonaws.com/v1/s3/s3.json | \
    jq '.Actions[] | select(.Annotations.Properties.IsWrite == true) | .Name'

"AssociateAccessGrantsIdentityCenter"
"BypassGovernanceRetention"
"CreateAccessGrant"
"CreateAccessGrantsInstance"
"CreateAccessGrantsLocation"
...
```

下列範例顯示哪些動作條件索引鍵具有 `lambda`字首，您可以用來限制對許可管理動作的存取：

```
> curl https://servicereference.us-east-1.amazonaws.com/v1/lambda/lambda.json | \
    jq '.Actions[] | select(.Annotations.Properties.IsPermissionManagement == true) | {Name: .Name, ActionConditionKeys: (.ActionConditionKeys // [])}'
 
{
   "Name": "AddLayerVersionPermission",
    "ActionConditionKeys": []
}
{
    "Name": "AddPermission",
    "ActionConditionKeys": [
        "lambda:FunctionUrlAuthType",
        "lambda:Principal"
    ]
}
{
    "Name": "DisableReplication",
    "ActionConditionKeys": []
}
{
    "Name": "EnableReplication",
    "ActionConditionKeys": []
}
{
    "Name": "RemoveLayerVersionPermission",
    "ActionConditionKeys": []
}
{
    "Name": "RemovePermission",
    "ActionConditionKeys": [
        "lambda:FunctionUrlAuthType",
        "lambda:Principal"
    ]
}
```