

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# プログラムによるアクセスの簡素化された AWS のサービス 情報
<a name="service-reference"></a>

AWS は、ポリシー管理ワークフローの自動化を合理化するために、JSON 形式のサービスリファレンス情報を提供します。サービスリファレンス情報を使用すると、マシンが読み取り可能なファイル AWS のサービス から で使用可能なオペレーション、アクション、リソース、および条件キーにアクセスできます。サービスリファレンス情報には、IAM アクションの最終アクセス時間情報や IAM Access Analyzer ポリシー生成データなど、認可の詳細以外のメタデータが含まれます。

セキュリティ管理者はガードレールを確立でき、デベロッパーはそれぞれの利用可能なアクション、リソース、および条件キーを特定することで、アプリケーションへの適切なアクセスを確保できます AWS のサービス。 は、 のサービスリファレンス情報 AWS を提供し AWS のサービス 、ポリシー管理ワークフローにメタデータを組み込むことができます。
+ IAM ポリシーで使用するアクション、リソース、および条件キーのインベントリについては、 AWS のサービスの「[サービス認証リファレンス](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)」ページを参照してください。サービスプレフィックスを共有するサービスのアクション、リソース、および条件キーは、「サービス認可リファレンス」の複数のページに分割できます。
+ 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 のサービス のリストにアクセスします。

   主なエントリポイントは 2 つあります。

   [http://servicereference.us-east-1.amazonaws.com/](http://servicereference.us-east-1.amazonaws.com/) には、 AWS のサービス 参照情報が利用可能な のリストが表示されます。

   次の例は、それぞれのリファレンス情報のサービスと URL の一部リストを示しています。

   ```
   [ 
       { 
           "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>
+ オペレーション - 通常は SDK を介して呼び出すことができる API
+ アクション - オペレーションの実行時に承認されるアクセス許可

## 追加のフィールド定義
<a name="service-reference-additional-field-definitions"></a>

**アクションプロパティ**は、サービスアクションに関する追加のメタデータを提供し、アクセス許可の範囲に基づいて分類するのに役立ちます。これらのプロパティは、各アクションの `Annotations` フィールドにあります。メタデータは 4 つのブール値で構成されます。
+ `IsList` – リソースコンテンツにアクセスせずに、基本的なメタデータを含むリソースを検出して一覧表示するアクセス許可を提供します。

  **例** – このプロパティは Amazon S3 `ListBucket` アクション `true` 用であり、ユーザーはオブジェクト自体にアクセスせずにバケットのリストを表示できます。
+ `IsPermissionManagement` – IAM アクセス許可またはアクセス認証情報を変更するアクセス許可を提供します。

  **例** – このプロパティは、ほとんどの IAM アクションと AWS Organizations アクション、および `PutBucketPolicy`や などの Amazon S3 アクション`true`用です`DeleteBucketPolicy`。
+ `IsTaggingOnly` – タグを変更するためのアクセス許可のみを提供します。

  **例** – このプロパティは IAM アクション `TagRole` と `UntagRole` に対して `true` ですが、タグ付けを超える広範なアクセス許可を提供するため `CreateRole` に対しては `false` です。
+ `IsWrite` – タグの変更を含むリソースを変更するアクセス許可を提供します。

  **例** – このプロパティは、リソースの変更を許可するため、Amazon S3 アクション、`CreateBucket`、`DeleteBucket`、`PutObject` に対して `true` です。

**注記**  
これらのプロパティは相互に排他的ではありません。アクションには、複数のプロパティが `true` に設定されている場合があります。  
Amazon S3 の `GetObject` アクションで見られるように、すべてのプロパティを `false` にすることもできます。これは、 アクションがオブジェクトに対する読み取りアクセス許可のみを付与することを示します。

これらのプロパティを使用して、 サービスのインサイトを生成できます。次の例は、`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"
    ]
}
```