本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
IAM JSON 政策元素:Resource
Resource
元素指定陳述式所涵蓋的一個或多個物件。陳述式必須包含 Resource
或 NotResource
元素。您使用 ARN 指定資源。如需有關 ARN 格式的詳細資訊,請參閱 IAM ARN。
每個服務都有自己的一組資源。雖然您始終使用 ARN 來指定資源,但資源 ARN 的詳細資訊取決於服務和資源。如需有關如何指定資源的詳細資訊,請參閱您要撰寫陳述式的服務文件。
注意
有些服務不允許您為個別的資源指定動作;相反,您在 Action
或 NotAction
元素中列出的任何動作都套用到該服務中的所有資源。在這些情況下,您可以在 *
元素中使用萬用字元 Resource
。
以下範例參考特定的 Amazon SQS 佇列。
"Resource": "arn:aws:sqs:us-east-2:
account-ID-without-hyphens
:queue1"
以下範例參考 AWS 帳戶 中名為 Bob 的 IAM 使用者。
注意
在 Resource
元素中,IAM 使用者名稱區分大小寫。
"Resource": "arn:aws:iam::
account-ID-without-hyphens
:user/Bob"
在資源 ARN 中使用萬用字元
資源 ARN 中可以使用萬用字元。您可以在 ARN 區段中 (由冒號分隔的部分) 使用萬用字元 (* 和 ?) 表示具有星號 (*) 的任何字元組合和具有問號 (?) 的任何單一字元。您可以在每個區段中使用多個 * 或? 字元。如果萬用字元 (*) 是資源 ARN 區段的最後一個字元,則其可以展開,以符合冒號界限以外的內容。我們建議您在由冒號分隔的 ARN 區段內使用萬用字元 (* 和 ?)。
注意
您無法在識別 AWS 產品的服務區段中使用萬用字元。如需 ARN 客群的詳細資訊,請參閱 Amazon 資源名稱 (ARN)。
以下範例參考路徑為 /accounting
的所有 IAM 使用者。
"Resource": "arn:aws:iam::
account-ID-without-hyphens
:user/accounting/*"
以下範例參考特定 Amazon S3 儲存貯體中的所有項目。
"Resource": "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
/*"
星號 (*) 字元可以展開以取代區段內的所有項目,包括如正斜線 (/) 等字元,這些字元可能會顯示為指定服務命名空間內的分隔符號。例如,假設下列 Amazon S3 ARN,因為相同的萬用字元擴充邏輯適用於所有服務。
"Resource": "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
/*/test/*"
ARN 中的萬用字元適用於儲存貯體中的所有以下物件,而不僅僅是列出的第一個物件。
DOC-EXAMPLE-BUCKET
/1/test/object.jpgDOC-EXAMPLE-BUCKET
/1/2/test/object.jpgDOC-EXAMPLE-BUCKET
/1/2/test/3/object.jpgDOC-EXAMPLE-BUCKET
/1/2/3/test/4/object.jpgDOC-EXAMPLE-BUCKET
/1///test///object.jpgDOC-EXAMPLE-BUCKET
/1/test/.jpgDOC-EXAMPLE-BUCKET
//test/object.jpgDOC-EXAMPLE-BUCKET
/1/test/
考慮上一個清單中的最後兩個物件。Amazon S3 物件名稱可有效地以傳統分隔符號正斜線 (/) 字元開頭或結尾。雖然「/」作為分隔符,但在資源 ARN 中使用此字元時卻沒有特定的意義。它被視為與任何其他有效字元相同。ARN 不符合下列物件:
DOC-EXAMPLE-BUCKET
/1-test/object.jpgDOC-EXAMPLE-BUCKET
/test/object.jpgDOC-EXAMPLE-BUCKET
/1/2/test.jpg
指定多個資源
您可以指定多個資源。以下範例參考兩個 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" ]
在資源 ARN 中使用政策變數
在 Resource
元素中,您可以在 ARN 中用於識別特定資源 (即 ARN 的尾隨部分) 的部分中使用 JSON 政策變數。例如,您可以使用索引鍵 {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 政策元素:變數與標籤。