IAMJSON政策元素:Resource - AWS Identity and Access Management

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

IAMJSON政策元素:Resource

IAM原則陳述式中的Resource元素會定義陳述式所套用的一或多個物件。陳述式必須包含 ResourceNotResource 元素。

您可以使用 Amazon 資源名稱 (ARN) 指定資源。的格式取ARN決於您所指的 AWS 服務 和特定資源。雖然ARN格式各不相同,但總是使用 a ARN 來識別資源。若要取得有關的格式的更多資訊ARNs,請參閱IAM ARNs。如需有關如何指定資源的詳細資訊,請參閱您要撰寫陳述式的服務文件。

注意

有些則 AWS 服務 不允許您針對個別資源指定動作。在這些情況下,您在ActionNotAction元素中列出的任何動作都會套用至該服務中的所有資源。在這種情況下,您可以在元素中使用萬用字Resource元 (*)。

下列範例是指特定的 Amazon SQS 佇列。

"Resource": "arn:aws:sqs:us-east-2:account-ID-without-hyphens:queue1"

下列範例指的IAM是Bob在 AWS 帳戶.

注意

Resource元素中,IAM使用者名稱區分大小寫。

"Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"

在資源中使用萬用字元 ARNs

您可以在 (以冒號分隔的部分?) 的個別區段中使用萬用字元 ARN (*和) 來表示:

  • 字元 (*) 的任意組合

  • 任何單一字元 (?)

您可以在每個區段中使用多個*?字元。如果*萬用字元是資源ARN區段的最後一個字元,它可以展開以比對超出冒號邊界。建議您在以冒號分隔的ARN區段中使用萬用字元 (*?)。

注意

您無法在識別 AWS 產品的服務區段中使用萬用字元。如需區段的詳ARN細資訊,請參閱 使用 Amazon AWS 資源名稱識別資源 (ARNs)

下列範例是指路徑為的所有IAM使用者/accounting

"Resource": "arn:aws:iam::account-ID-without-hyphens:user/accounting/*"

以下範例參考特定 Amazon S3 儲存貯體中的所有項目。

"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"

星號 (*) 字元可以展開來取代區段中的所有項目,包括像正斜線 (/) 這樣的字元,否則可能會顯示為指定服務命名空間內的分隔符號。例如,請考慮下列 Amazon S3,ARN因為相同的萬用字元擴充邏輯適用於所有服務。

"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"

中的萬用字元會ARN套用至值區中的下列所有物件,而不僅是列出的第一個物件。

amzn-s3-demo-bucket/1/test/object.jpg amzn-s3-demo-bucket/1/2/test/object.jpg amzn-s3-demo-bucket/1/2/test/3/object.jpg amzn-s3-demo-bucket/1/2/3/test/4/object.jpg amzn-s3-demo-bucket/1///test///object.jpg amzn-s3-demo-bucket/1/test/.jpg amzn-s3-demo-bucket//test/object.jpg amzn-s3-demo-bucket/1/test/

考慮上一個清單中的最後兩個物件。Amazon S3 物件名稱可以以傳統的分隔符號正斜線 (/) 字元開頭或結尾。雖然可以用/作分隔符,但是在資源中使用此字符時沒有特定意義ARN。它被視為與任何其他有效字元相同。ARN不符合下列物件:

amzn-s3-demo-bucket/1-test/object.jpg amzn-s3-demo-bucket/test/object.jpg amzn-s3-demo-bucket/1/2/test.jpg

指定多個資源

您可以通過使用的數組在Resource元素中指定多個資源ARNs。以下範例參考兩個 DynamoDB 資料表。

"Resource": [ "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/books_table", "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/magazines_table" ]

在資源中使用政策變數 ARNs

Resource元素中,您可以在的部分中使用JSON政策變數ARN,以識別特定資源 (亦即,在的尾端部分ARN)。例如,您可以使用金鑰{aws:username}做為資源的一部分,ARN以指出目前使用者的名稱應包含在資源名稱中。以下範例顯示如何在 {aws:username} 元素中使用 Resource 索引鍵。此政策允許存取與目前使用者名稱符合的 Amazon DynamoDB 資料表。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-2:account-id:table/${aws:username}" } }

如需有關JSON策略變數的詳細資訊,請參閱IAM 政策元素:變數與標籤