私のプロジェクトではdynamodbテーブルを使用していますが、そのプロジェクトの開発者はほとんどいません。ユーザ固有の秘密鍵とアクセス鍵を与えて、特定のDynamodbテーブルのみを使用できるようにしたいと考えています。 (読み取りアクセス専用のテーブルと、読み取りアクセスと書き込みアクセス用のテーブル)。IAMポリシーを定義する方法ユーザーが特定のDynamodbテーブルに対してのみプログラム全体または制限されたアクセスを持つようにするにはどうすればよいですか?
あなたがこれと同じIAMポリシーを使用して、グループまたはユーザー(複数可)に添付でき答えて
:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "StatementForTable1",
"Effect": "Allow",
"Action": [
"dynamodb:Scan",
"dynamodb:Query",
"dynamodb:GetItem",
"dynamodb:BatchGetItem"
],
"Resource": [
"arn:aws:dynamodb:REGION:ACCOUNT:table/Table1"
]
},
{
"Sid": "StatementForTable2",
"Effect": "Allow",
"Action": [
"dynamodb:Scan",
"dynamodb:Query",
"dynamodb:GetItem",
"dynamodb:BatchGetItem",
"dynamodb:BatchWriteItem",
"dynamodb:PutItem",
"dynamodb:UpdateItem"
],
"Resource": [
"arn:aws:dynamodb:REGION:ACCOUNT:table/Table2"
]
}
]
}
それがhere記載されているとおり:
次のポリシーをすることができIAMグループにアタッチされ、ユーザーに という名前のDynamoDBテーブルにプログラムでアクセスする権限が与えられます。たとえば、ユーザーBobは、 DynamoDBアクションをBobという名前のテーブルで実行できます。このポリシーは、 に、それぞれ独自の DynamoDBテーブルを管理することを許可されたユーザーを含むグループに割り当てることができます。
あなたがテーブルの特定のユーザにFULLアクセス許可したいのであれば、あなたは次のようにポリシーを設定することができます:ファイングレイン・アクセス・コントロールのためのIAMポリシー条件を使用して
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "dynamodb:*",
"Resource": "arn:aws:dynamodb:AWS-REGION-IDENTIFIER:ACCOUNT-ID-WITHOUT-HYPHENS:table/${aws:username}"
}]
}
を
たとえば、テーブル内の特定の属性へのアクセスを制限するアクセス許可を付与するとします。
サンプルIAMポリシー:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "LimitAccessToSpecificAttributes",
"Effect": "Allow",
"Action": [
"dynamodb:UpdateItem",
"dynamodb:GetItem",
"dynamodb:Query",
"dynamodb:BatchGetItem",
"dynamodb:Scan"
],
"Resource": [
"arn:aws:dynamodb:us-west-2:123456789012:table/GameScores"
],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:Attributes": [
"UserId",
"TopScore"
]
},
"StringEqualsIfExists": {
"dynamodb:Select": "SPECIFIC_ATTRIBUTES",
"dynamodb:ReturnValues": [
"NONE",
"UPDATED_OLD",
"UPDATED_NEW"
]
}
}
}
]
}
説明:
この部分は、ユーザーが行うことができます関連のアクションをさせるされています。
"Action": [
"dynamodb:UpdateItem",
"dynamodb:GetItem",
"dynamodb:Query",
"dynamodb:BatchGetItem",
"dynamodb:Scan"
],
としては、最初のサンプル、アクセスポイントDESCで説明しました。キーワード ':StringEquals ForAllValues' はここで
"Resource": [
"arn:aws:dynamodb:us-west-2:123456789012:table/GameScores"
]
、。指定されたユーザ は、属性 "UserId"と "TopScore"のみを要求できます。
"ForAllValues:StringEquals": {
"dynamodb:Attributes": [
"UserId",
"TopScore"
]
}
StringEqualsIfExistsの定義は、以下の説明で理解することができます。
権限ポリシーのStringEqualsIfExists句は、次の を保証:ユーザーが指定した場合
パラメータを選択すると、その値は SPECIFIC_ATTRIBUTESでなければなりません。この要件により、 からのAPI操作では、インデックス の投影など、許可されていない属性が返されることはありません。ユーザーがReturnValuesパラメーターを指定した場合、その 値はNONE、UPDATED_OLDまたはUPDATED_NEWでなければなりません。 UpdateItemアクションは、置換する前にアイテムが存在するかどうかを確認するための暗黙的な読み取り操作も実行し、要求された場合は の前の属性値が返されるため、 が必要です。このようにして ReturnValuesを制限すると、ユーザーは許可された属性の読み取りまたは書き込みのみを許可できます。 StringEqualsIfExists句を使用すると、 のいずれかのパラメータ(SelectまたはReturnValues)が、許可されたアクションのコンテキストで 要求ごとに使用できることが保証されます。
"StringEqualsIfExists": {
"dynamodb:Select": "SPECIFIC_ATTRIBUTES",
"dynamodb:ReturnValues": [
"NONE",
"UPDATED_OLD",
"UPDATED_NEW"
]
}
あなたは、完全なサンプルhereを見つけることができます。
- 1. 特定のVPC内のインスタンスにユーザーを制限するIAMポリシー
- 2. コントローラ全体に対して特定のグループへのアクセスを制限するにはどうすればよいですか?
- 3. ネストされたユーザー定義型のフィールドにアクセスするにはどうすればよいですか?
- 4. Rails 3で特定の役割を持つユーザーにアクセスするにはどうすればよいですか?
- 5. すでに限定されたクエリを制限するにはどうすればよいですか?
- 6. 認証されたユーザーへのアクセスを制限するにはどうすればよいですか?
- 7. 特定の名前のクロスアカウントロールを仮定するようにIAMユーザーを制限する方法
- 8. ロードバランサに制限されたIAMポリシー
- 9. 特定のユーザーのレジストリキーをプログラムによって編集するにはどうすればよいですか?
- 10. 特定のユーザーのサイトアクションメニュー全体を削除するにはどうすればよいですか?
- 11. 複数のIAMユーザに対してそれぞれの個人バケットフォルダにアクセスできるようにS3ポリシーを設定する方法はありますか?
- 12. Redshiftの特定の列へのアクセスを制限するにはどうすればよいですか?
- 13. ASP.NET MVCの特定のページへのアクセスを制限するにはどうすればよいですか?
- 14. DataGridView列の特定のセルに数値のみを入力するようにユーザーを制限するにはどうすればよいですか?
- 15. 特定のユーザー入力を制限するにはどうすればよいですか?
- 16. Perlのネストされたハッシュで特定のキーにアクセスするにはどうすればよいですか?
- 17. Mercurialで特定のコミットに対してのみプルリクエストを行うにはどうすればよいですか?
- 18. ユーザーが指定した値を持つテーブルを作成するにはどうすればいいですか?
- 19. 特定のテーブル変数に対してdistinctを使用するにはどうすればよいですか?
- 20. addEventListenerで定義されたdblclickイベントをプログラムで起動するにはどうすればよいですか?
- 21. エディタを編集して特定のカテゴリにのみ投稿するように制限するにはどうすればよいですか?
- 22. 特定のインデックスを持つNSTableViewの行オブジェクトを特定するにはどうすればよいですか?
- 23. 特定のdiv以外のページ全体を無効にするにはどうすればよいですか?
- 24. Laravel:ユーザーがルート/ページにアクセスする時間を制限するにはどうすればよいですか?
- 25. プログラムが特定のフォルダにアクセスできるようにするポリシー
- 26. iOSでユーザーを特定するにはどうすればよいですか?
- 27. ルビクラスのクラスメンバーにアクセスするための[]メソッドを定義するにはどうすればよいですか?
- 28. ダイナミックテキストを作成して特定のポイントに限定するにはどうすればよいですか?
- 29. 特定のctypeに対してfocusAreaを設定するにはどうすればよいですか?
- 30. 特定のSQLクエリに対してタイムアウトを設定するにはどうすればよいですか?