GetResourcePolicy
Returns the resource-based policy document attached to the resource, which can be a table or stream, in JSON format.
GetResourcePolicy
follows an eventually consistent model. The following list
describes the outcomes when you issue the GetResourcePolicy
request
immediately after issuing another request:
-
If you issue a
GetResourcePolicy
request immediately after aPutResourcePolicy
request, DynamoDB might return aPolicyNotFoundException
. -
If you issue a
GetResourcePolicy
request immediately after aDeleteResourcePolicy
request, DynamoDB might return the policy that was present before the deletion request. -
If you issue a
GetResourcePolicy
request immediately after aCreateTable
request, which includes a resource-based policy, DynamoDB might return aResourceNotFoundException
or aPolicyNotFoundException
.
Because GetResourcePolicy
uses an eventually
consistent query, the metadata for your policy or table might not be
available at that moment. Wait for a few seconds, and then retry the
GetResourcePolicy
request.
After a GetResourcePolicy
request returns a policy created using the
PutResourcePolicy
request, the policy will be applied in the
authorization of requests to the resource. Because this process is eventually
consistent, it will take some time to apply the policy to all requests to a resource.
Policies that you attach while creating a table using the CreateTable
request will always be applied to all requests for that table.
Request Syntax
{
"ResourceArn": "string
"
}
Request Parameters
The request accepts the following data in JSON format.
Note
In the following list, the required parameters are described first.
- ResourceArn
-
The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy is attached. The resources you can specify include tables and streams.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 1283.
Required: Yes
Response Syntax
{
"Policy": "string",
"RevisionId": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- Policy
-
The resource-based policy document attached to the resource, which can be a table or stream, in JSON format.
Type: String
- RevisionId
-
A unique string that represents the revision ID of the policy. If you're comparing revision IDs, make sure to always use string comparison logic.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Errors
For information about the errors that are common to all actions, see Common Errors.
- InternalServerError
-
An error occurred on the server side.
HTTP Status Code: 500
- PolicyNotFoundException
-
The operation tried to access a nonexistent resource-based policy.
If you specified an
ExpectedRevisionId
, it's possible that a policy is present for the resource but its revision ID didn't match the expected value.HTTP Status Code: 400
- ResourceNotFoundException
-
The operation tried to access a nonexistent table or index. The resource might not be specified correctly, or its status might not be
ACTIVE
.HTTP Status Code: 400
Examples
Get the resource-based policy of a table
The following example retrieves the resource-based policy of a table named
Thread
.
Sample Request
GET / HTTP/1.1
Host: dynamodb.<region>.<domain>;
Accept-Encoding: identity
Content-Length: <PayloadSizeBytes>
User-Agent: <UserAgentString>
Content-Type: application/x-amz-json-1.0
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>
X-Amz-Date: <Date>
X-Amz-Target: DynamoDB_20120810.GetResourcePolicy
{
"ResourceArn": "arn:aws:dynamodb:us-west-2:123456789012:table/Thread"
}
Sample Response
HTTP/1.1 200 OK
x-amzn-RequestId: <RequestId>
x-amz-crc32: <Checksum>
Content-Type: application/x-amz-json-1.0
Content-Length: <PayloadSizeBytes>
Date: <Date>
{
"Policy": "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\",\"arn:aws:iam::444455556666:root\"]},\"Action\":[\"dynamodb:GetItem\"],\"Resource\":\"arn:aws:dynamodb:us-west-2:123456789012:table/Thread\"}}",
"RevisionId": "1683717331354"
}
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: