簡化程式設計存取 AWS 服務 的資訊 - 服務授權參考

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

簡化程式設計存取 AWS 服務 的資訊

AWS 提供 JSON 格式的服務參考資訊,以簡化政策管理工作流程的自動化。透過 服務參考資訊,您可以從 AWS 服務 機器可讀取的檔案跨 存取可用的動作、資源和條件索引鍵。安全管理員可以建立護欄,開發人員可以透過識別每個 的可用動作、資源和條件索引鍵來確保應用程式的適當存取 AWS 服務。 AWS 提供 的服務參考資訊 AWS 服務 ,可讓您將中繼資料納入政策管理工作流程。

如需用於 IAM 政策的動作、資源和條件索引鍵的庫存,請參閱 的服務授權參考頁面 AWS 服務。

服務授權參考中的共用服務字首之服務的動作、資源和條件索引鍵可以分割為多個頁面。

服務授權參考中呈現的內容可能會以不同方式呈現,或包含不同的中繼資料。如需詳細資訊,請參閱其他欄位定義

注意

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

存取 AWS 服務 參考資訊
  1. 導覽至服務參考資訊,以存取可用的 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" }, … ]
  2. 選擇服務並導覽至服務 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" } ] }, { "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" } ] }, ... ], "ConditionKeys": [ { "Name": "s3:TlsVersion", "Types": [ "Numeric" ] }, { "Name": "s3:authType", "Types": [ "String" ] }, ... ], "Resources": [ { "Name": "accesspoint", "ARNFormats": [ "arn:${Partition}:s3:${Region}:${Account}:accesspoint/${AccessPointName}" ] }, { "Name": "bucket", "ARNFormats": [ "arn:${Partition}:s3:::${BucketName}" ] } ... ], "Version": "v1.2" }
  3. 從服務 URL 下載 JSON 檔案,以用於您的政策撰寫工作流程。

其他欄位定義

動作屬性提供有關服務動作的其他中繼資料,以協助根據其許可範圍進行分類。這些屬性位於每個動作的 Annotations 欄位下。中繼資料包含四個布林值:

  • IsList – 提供探索和列出資源的許可,包括基本中繼資料,而無需存取資源內容。

    範例 – 此屬性true適用於 Amazon S3 ListBucket動作,允許使用者檢視儲存貯體清單,而無需自行存取物件。

  • IsPermissionManagement – 提供修改 IAM 許可或存取登入資料的許可。

    範例 – 此屬性true適用於大多數 IAM 和 AWS Organizations 動作,以及 PutBucketPolicy和 等 Amazon S3 動作DeleteBucketPolicy

  • IsTaggingOnly – 僅提供修改標籤的許可。

    範例 – 此屬性true適用於 IAM 動作TagRoleUntagRole,而此屬性false適用於 ,CreateRole因為它提供超出標記範圍的許可。

  • IsWrite – 提供修改 資源的許可,其中可能包括標籤修改。

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

注意

這些屬性不互斥。動作可能將多個屬性設定為 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" ] }