本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
IAMJSON政策元素:Resource
IAM原則陳述式中的Resource
元素會定義陳述式所套用的一或多個物件。陳述式必須包含 Resource
或 NotResource
元素。
您可以使用 Amazon 資源名稱 (ARN) 指定資源。的格式取ARN決於您所指的 AWS 服務 和特定資源。雖然ARN格式各不相同,但總是使用 a ARN 來識別資源。若要取得有關的格式的更多資訊ARNs,請參閱IAM ARNs。如需有關如何指定資源的詳細資訊,請參閱您要撰寫陳述式的服務文件。
注意
有些則 AWS 服務 不允許您針對個別資源指定動作。在這些情況下,您在Action
或NotAction
元素中列出的任何動作都會套用至該服務中的所有資源。在這種情況下,您可以在元素中使用萬用字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 政策元素:變數與標籤。