注æ
ãã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ è¦ã§ãã ãµã¤ã³ã¤ã³ã¾ãã¯ãã£ã¬ã¯ããªã®å¤æ´ã試ããã¨ãã§ãã¾ãã
ãã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ è¦ã§ãã ãã£ã¬ã¯ããªã®å¤æ´ã試ããã¨ãã§ãã¾ãã
é©ç¨å¯¾è±¡: NoSQL
Note
ãã®è¨äºã§ã¯ãAzure Cosmos DB ã§ã®ãã¼ã¿ ãã¬ã¼ã³æä½ã«å¯¾ãããã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã«ã¤ãã¦èª¬æãã¾ãã 管çãã¬ã¼ã³æä½ã使ç¨ãã¦ããå ´åã¯ã管çãã¬ã¼ã³æä½ã«é©ç¨ããããã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã«é¢ããè¨äºãåç §ãã¦ãã ããã
Azure Cosmos DB ã§ã¯ã次ã®ãã¨ãå¯è½ã«ããçµã¿è¾¼ã¿ã®ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã·ã¹ãã ãå ¬éãã¦ãã¾ãã
- Microsoft Entra ID ã使ç¨ãã¦ãã¼ã¿è¦æ±ãèªè¨¼ãã¾ãã
- ããç´°ãããã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹è¨±å¯ã¢ãã«ã使ç¨ãã¦ãã¼ã¿è¦æ±ãèªå¯ããã
æ¦å¿µ
Azure Cosmos DB ãã¼ã¿ ãã¬ã¼ã³ã®ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã¯ãAzure ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ãªã©ã®ä»ã®ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã·ã¹ãã ã§ããè¦ãããæ¦å¿µã«åºã¥ãã¦æ§ç¯ããã¦ãã¾ãã
- ã¢ã¯ã»ã¹è¨±å¯ã¢ãã«ã¯ãä¸é£ã®ã¢ã¯ã·ã§ã³ã§æ§æããã¾ãããããã®åã¢ã¯ã·ã§ã³ã¯ã1 ã¤ã¾ãã¯è¤æ°ã®ãã¼ã¿ãã¼ã¹æä½ã«ãããããã¾ãã ã¢ã¯ã·ã§ã³ã®ä¾ã¨ãã¦ã¯ãã¢ã¤ãã ã®èªã¿åããã¢ã¤ãã ã®æ¸ãè¾¼ã¿ãã¯ã¨ãªã®å®è¡ãªã©ãããã¾ãã
- Azure Cosmos DB ã¦ã¼ã¶ã¼ã¯ã許å¯ãããã¢ã¯ã·ã§ã³ã®ä¸è¦§ãå«ã ãã¼ã«ã®å®ç¾© ã使ãã¾ãã
- ãã¼ã«ã®å®ç¾©ã¯ããã¼ã«ã®å²ãå½ã¦ã«ãã£ã¦ç¹å®ã® Microsoft Entra ID ã«å²ãå½ã¦ããã¾ãã ãã¼ã«ã®å²ãå½ã¦ã§ã¯ããã¼ã«ã®å®ç¾©ãé©ç¨ãããã¹ã³ã¼ããå®ç¾©ããã¾ããç¾å¨ã3 ã¤ã®ã¹ã³ã¼ããããã¾ãã
- Azure Cosmos DB ã¢ã«ã¦ã³ãã
- Azure Cosmos DB ãã¼ã¿ãã¼ã¹ã
- Azure Cosmos DB ã³ã³ããã¼ã
権éã¢ãã«
éè¦
ãã®æ¨©éã¢ãã«ã§ã¯ããã¼ã¿ã®èªã¿æ¸ããã¨ããªããã¼ã¿ãã¼ã¹æä½ã®ã¿ãæ±ããã¾ãã æ¬¡ã®ãããªç®¡çãªã½ã¼ã¹ã«å¯¾ãã管çæä½ã®ãããªãã®ã¯æ±ããã¾ããã
- ãã¼ã¿ãã¼ã¹ã®ä½æãç½®æãåé¤
- ã³ã³ããã¼ã®ä½æãç½®æãåé¤
- ã³ã³ããã¼ ã¹ã«ã¼ãããã®èªã¿åã/ç½®æ
- ã¹ãã¢ã ããã·ã¼ã¸ã£ã®ä½æãç½®æãåé¤ãèªã¿åã
- ããªã¬ã¼ã®ä½æãç½®æãåé¤ãèªã¿åã
- ã¦ã¼ã¶ã¼å®ç¾©é¢æ°ã®ä½æãç½®æãåé¤ãèªã¿åã
Microsoft Entra ID ã§ç®¡çæä½ãèªè¨¼ããããã«ãAzure Cosmos DB ãã¼ã¿ ãã¬ã¼ã³ SDK ã使ç¨ãããã¨ã¯ã§ãã¾ããã 代ããã«ã次ã®ããããã®ãªãã·ã§ã³ã使ç¨ã㦠Azure ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã使ç¨ããå¿ è¦ãããã¾ãã
- Azure Resource Manager ãã³ãã¬ã¼ã (ARM ãã³ãã¬ã¼ã)
- Azure PowerShell ã¹ã¯ãªãã
- Azure CLI ã¹ã¯ãªãã
- 次ã§å©ç¨å¯è½ãª Azure 管çã©ã¤ãã©ãª:
ãã¼ã¿ãã¼ã¹ã®èªã¿åãã¨ã³ã³ããã¼ã®èªã¿åãã¯ã¡ã¿ãã¼ã¿è¦æ±ã¨è¦ãªããã¾ãã ãããã®æä½ã¸ã®ã¢ã¯ã»ã¹ã¯ã次ã®ã»ã¯ã·ã§ã³ã§èª¬æããããã«è¨±å¯ã§ãã¾ãã
次ã®è¡¨ã§ã¯ãã¢ã¯ã»ã¹è¨±å¯ã¢ãã«ã«ãã£ã¦å ¬éããããã¹ã¦ã®ã¢ã¯ã·ã§ã³ã示ãã¾ãã
åå | 対å¿ãããã¼ã¿ãã¼ã¹æä½ |
---|---|
Microsoft.DocumentDB/databaseAccounts/readMetadata |
ã¢ã«ã¦ã³ã ã¡ã¿ãã¼ã¿ã®èªã¿åãã 詳細ã«ã¤ãã¦ã¯ãã¡ã¿ãã¼ã¿ã®è¦æ±ãåç §ãã¦ãã ããã |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create |
æ°ããé ç®ã使ãã¾ãã |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read |
åã ã®é ç®ããã® ID ã¨ãã¼ãã£ã·ã§ã³ ãã¼ã«ãã£ã¦èªã¿åãã¾ã (ãã¤ã³ãèªã¿åã)ã |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace |
æ¢åã®ã¢ã¤ãã ãç½®æãã¾ãã |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/upsert |
é ç®ã® "ã¢ãããµã¼ã"ã ãã®æä½ã§ã¯ãã¾ã åå¨ããªãå ´åã¯é ç®ã使ããåå¨ããå ´åã¯é ç®ãç½®ãæãã¾ãã |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/delete |
ã¢ã¤ãã ãåé¤ãã¾ãã |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery |
SQL ã¯ã¨ãªãå®è¡ãã¾ãã |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed |
ã³ã³ããã¼ã®å¤æ´ãã£ã¼ãããèªã¿åãã¾ãã SDK ã使ç¨ã㦠SQL ã¯ã¨ãªãå®è¡ãã¾ãã |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeStoredProcedure |
ã¹ãã¢ã ããã·ã¼ã¸ã£ãå®è¡ãã¾ãã |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/manageConflicts |
è¤æ°ã®æ¸ãè¾¼ã¿ãªã¼ã¸ã§ã³ ã¢ã«ã¦ã³ãã®ç«¶åã管çãã¾ã (ã¤ã¾ããç«¶åãã£ã¼ãããã®ã¢ã¤ãã ã®ä¸è¦§è¡¨ç¤ºã¨åé¤ãè¡ãã¾ã)ã |
Note
SDK ãä»ãã¦ã¯ã¨ãªãå®è¡ããå ´åã¯ãMicrosoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery
㨠Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed
ã®ä¸¡æ¹ã®ã¢ã¯ã»ã¹è¨±å¯ãå¿
è¦ã§ãã
ã¯ã¤ã«ãã«ã¼ãã¯ãã³ã³ããã¼ ã¬ãã«ã¨ã¢ã¤ãã ã¬ãã«ã®ä¸¡æ¹ã§ãµãã¼ãããã¾ãã
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*
ã¡ã¿ãã¼ã¿è¦æ±
Azure Cosmos DB SDK ã¯åæåä¸ã«èªã¿åãå°ç¨ã®ã¡ã¿ãã¼ã¿è¦æ±ãçºè¡ããç¹å®ã®ãã¼ã¿è¦æ±ãå¦çãã¾ãã ãããã®è¦æ±ã«ãããæ¬¡ã®ãããªãã¾ãã¾ãªæ§æã®è©³ç´°ããã§ããããã¾ãã
- ã¢ã«ã¦ã³ãã®ã°ãã¼ãã«æ§æãã¢ã«ã¦ã³ãã使ç¨ã§ãã Azure ãªã¼ã¸ã§ã³ãå«ã¾ãã¾ãã
- ã³ã³ããã¼ã®ãã¼ãã£ã·ã§ã³ ãã¼ã¾ãã¯ãã®ã¤ã³ããã¯ã¹ä½æããªã·ã¼ã
- ã³ã³ããã¼ã¨ãã®ã¢ãã¬ã¹ã使ããç©çãã¼ãã£ã·ã§ã³ã®ä¸è¦§ã
ã¢ã«ã¦ã³ãã«æ ¼ç´ããã¦ãããã¼ã¿ã¯åå¾ããã¾ããã
ã¢ã¯ã»ã¹è¨±å¯ã¢ãã«ã§æå¤§éã®éæåº¦ã確ä¿ããããããããã®ã¡ã¿ãã¼ã¿è¦æ±ã¯ Microsoft.DocumentDB/databaseAccounts/readMetadata
ã¢ã¯ã·ã§ã³ã«ãã£ã¦æç¤ºçã«ã«ãã¼ããã¾ãã ãã®ã¢ã¯ã·ã§ã³ã¯ãAzure Cosmos DB SDK ã®ããããã使ç¨ã㦠Azure Cosmos DB ã¢ã«ã¦ã³ãã«ã¢ã¯ã»ã¹ãããã¹ã¦ã®ç¶æ³ã§è¨±å¯ããå¿
è¦ãããã¾ãã ããã¯ãAzure Cosmos DB é層å
ã®ä»»æã®ã¬ãã« (ã¤ã¾ããã¢ã«ã¦ã³ãããã¼ã¿ãã¼ã¹ãã¾ãã¯ã³ã³ããã¼) ã§ (ãã¼ã«ã®å²ãå½ã¦ã«ãã£ã¦) å²ãå½ã¦ããã¨ãã§ãã¾ãã
ã¢ã¯ã·ã§ã³ã«ãã£ã¦è¨±å¯ãããå®éã®ã¡ã¿ãã¼ã¿è¦æ±ã¯ãMicrosoft.DocumentDB/databaseAccounts/readMetadata
ã¢ã¯ã·ã§ã³ãå²ãå½ã¦ããã¦ããã¹ã³ã¼ãã«ãã£ã¦ç°ãªãã¾ãã
Scope | ã¢ã¯ã·ã§ã³ã«ãã£ã¦è¨±å¯ãããè¦æ± |
---|---|
Account | ⢠ã¢ã«ã¦ã³ãã®ãã¼ã¿ãã¼ã¹ã®ä¸è¦§è¡¨ç¤º ⢠ã¢ã«ã¦ã³ãã®åãã¼ã¿ãã¼ã¹ã«ã¤ãã¦ããã¼ã¿ãã¼ã¹ ã¹ã³ã¼ãã§è¨±å¯ãããã¢ã¯ã·ã§ã³ |
ãã¼ã¿ãã¼ã¹ | ⢠ãã¼ã¿ãã¼ã¹ ã¡ã¿ãã¼ã¿ã®èªã¿åã ⢠ãã¼ã¿ãã¼ã¹ã®ã³ã³ããã¼ã®ä¸è¦§è¡¨ç¤º ⢠ãã¼ã¿ãã¼ã¹ã®åã³ã³ããã¼ã«ã¤ãã¦ãã³ã³ããã¼ ã¹ã³ã¼ãã§è¨±å¯ãããã¢ã¯ã·ã§ã³ |
ã³ã³ããã¼ | ⢠ã³ã³ããã¼ ã¡ã¿ãã¼ã¿ã®èªã¿åã ⢠ã³ã³ããã¼ã®ç©çãã¼ãã£ã·ã§ã³ã®ä¸è¦§è¡¨ç¤º ⢠åç©çãã¼ãã£ã·ã§ã³ã®ã¢ãã¬ã¹ã®è§£æ±º |
éè¦
ã¹ã«ã¼ãããã¯ããã®ã¢ã¯ã·ã§ã³ã®ã¡ã¿ãã¼ã¿ã«ã¯å«ã¾ãã¾ããã
çµã¿è¾¼ã¿ã®ãã¼ã«ã®å®ç¾©
Azure Cosmos DB ã§ã¯ã次㮠2 ã¤ã®çµã¿è¾¼ã¿ãã¼ã«å®ç¾©ãå ¬éããã¦ãã¾ãã
éè¦
ããã§ã®ãã¼ã«å®ç¾©ã¨ããç¨èªã¯ãAzure Cosmos DB åºæã®ãã¼ã«å®ç¾©ãæãã¾ãã ãããã¯ãAzure ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ãã¼ã«å®ç¾©ã¨ã¯ç°ãªãã¾ãã
ID | åå | å«ã¾ããã¢ã¯ã·ã§ã³ |
---|---|---|
00000000-0000-0000-0000-000000000001 | Cosmos DB çµã¿è¾¼ã¿ãã¼ã¿ ãªã¼ãã¼ | Microsoft.DocumentDB/databaseAccounts/readMetadata Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed |
00000000-0000-0000-0000-000000000002 | Cosmos DB çµã¿è¾¼ã¿ãã¼ã¿å ±å使è | Microsoft.DocumentDB/databaseAccounts/readMetadata Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/* Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/* |
ã«ã¹ã¿ã ãã¼ã«ã®å®ç¾©ã®ä½æ
ã«ã¹ã¿ã ãã¼ã«ã®å®ç¾©ã使ããã¨ãã¯ãæ¬¡ã®æ å ±ãæå®ããå¿ è¦ãããã¾ãã
- Azure Cosmos DB ã¢ã«ã¦ã³ãã®ååã
- ã¢ã«ã¦ã³ããå«ããªã½ã¼ã¹ ã°ã«ã¼ãã
- ãã¼ã«ã®å®ç¾©ã®ç¨®é¡:
CustomRole
ã - ãã¼ã«ã®å®ç¾©åã
- ãã¼ã«ã§è¨±å¯ãã ã¢ã¯ã·ã§ã³ ã®ä¸è¦§ã
- ãã¼ã«å®ç¾©ãå²ãå½ã¦ããã¨ãã§ãã 1 ã¤ã¾ãã¯è¤æ°ã®ã¹ã³ã¼ãããµãã¼ãããã¦ããã¹ã³ã¼ãã¯æ¬¡ã®ã¨ããã§ãã
/
(ã¢ã«ã¦ã³ãã¬ãã«)ã/dbs/<database-name>
(ãã¼ã¿ãã¼ã¹ã¬ãã«)ã/dbs/<database-name>/colls/<container-name>
(ã³ã³ããã¼ã¬ãã«)ã
Note
è¨è¼ããã¦ããæä½ã¯ã以ä¸ã§ä½¿ç¨ã§ãã¾ãã
- Azure PowerShell: Az.CosmosDB ãã¼ã¸ã§ã³ 1.2.0 以é
- Azure CLI: ãã¼ã¸ã§ã³ 2.24.0 以ä¸
Azure PowerShell ã®ä½¿ç¨
èªã¿åãã¢ã¯ã·ã§ã³ã®ã¿ãå«ã MyReadOnlyRole ã¨ããååã®ãã¼ã«ã使ãã¾ãã
$resourceGroupName = "<myResourceGroup>"
$accountName = "<myCosmosAccount>"
New-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
-ResourceGroupName $resourceGroupName `
-Type CustomRole -RoleName MyReadOnlyRole `
-DataAction @( `
'Microsoft.DocumentDB/databaseAccounts/readMetadata',
'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read', `
'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery', `
'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed') `
-AssignableScope "/"
ãã¹ã¦ã®ã¢ã¯ã·ã§ã³ãå«ã MyReadWriteRole ã¨ããååã®ãã¼ã«ã使ãã¾ãã
New-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
-ResourceGroupName $resourceGroupName `
-Type CustomRole -RoleName MyReadWriteRole `
-DataAction @( `
'Microsoft.DocumentDB/databaseAccounts/readMetadata',
'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*', `
'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*') `
-AssignableScope "/"
ID ãåå¾ããããã«ä½æãããã¼ã«ã®å®ç¾©ãä¸è¦§è¡¨ç¤ºãã¾ãã
Get-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
-ResourceGroupName $resourceGroupName
RoleName : MyReadWriteRole
Id : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAcc
ounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>
Type : CustomRole
Permissions : {Microsoft.Azure.Management.CosmosDB.Models.Permission}
AssignableScopes : {/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAc
counts/<myCosmosAccount>}
RoleName : MyReadOnlyRole
Id : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAcc
ounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>
Type : CustomRole
Permissions : {Microsoft.Azure.Management.CosmosDB.Models.Permission}
AssignableScopes : {/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAc
counts/<myCosmosAccount>}
Azure CLI ã®ä½¿ç¨
role-definition-ro.json ã¨ããååã®ãã¡ã¤ã«ã«èªã¿åãã¢ã¯ã·ã§ã³ã®ã¿ãå«ã MyReadOnlyRole ã¨ããååã®ãã¼ã«ã使ãã¾ãã
{
"RoleName": "MyReadOnlyRole",
"Type": "CustomRole",
"AssignableScopes": ["/"],
"Permissions": [{
"DataActions": [
"Microsoft.DocumentDB/databaseAccounts/readMetadata",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed"
]
}]
}
resourceGroupName='<myResourceGroup>'
accountName='<myCosmosAccount>'
az cosmosdb sql role definition create --account-name $accountName --resource-group $resourceGroupName --body @role-definition-ro.json
role-definition-rw.json ã¨ããååã®ãã¡ã¤ã«ã«ãã¹ã¦ã®ã¢ã¯ã·ã§ã³ãå«ã MyReadWriteRole ã¨ããååã®ãã¼ã«ã使ãã¾ãã
{
"RoleName": "MyReadWriteRole",
"Type": "CustomRole",
"AssignableScopes": ["/"],
"Permissions": [{
"DataActions": [
"Microsoft.DocumentDB/databaseAccounts/readMetadata",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
]
}]
}
az cosmosdb sql role definition create --account-name $accountName --resource-group $resourceGroupName --body @role-definition-rw.json
ID ãåå¾ããããã«ä½æãããã¼ã«ã®å®ç¾©ãä¸è¦§è¡¨ç¤ºãã¾ãã
az cosmosdb sql role definition list --account-name $accountName --resource-group $resourceGroupName
[
{
"assignableScopes": [
"/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>"
],
"id": "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>",
"name": "<roleDefinitionId>",
"permissions": [
{
"dataActions": [
"Microsoft.DocumentDB/databaseAccounts/readMetadata",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
],
"notDataActions": []
}
],
"resourceGroup": "<myResourceGroup>",
"roleName": "MyReadWriteRole",
"sqlRoleDefinitionGetResultsType": "CustomRole",
"type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions"
},
{
"assignableScopes": [
"/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>"
],
"id": "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>",
"name": "<roleDefinitionId>",
"permissions": [
{
"dataActions": [
"Microsoft.DocumentDB/databaseAccounts/readMetadata",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed"
],
"notDataActions": []
}
],
"resourceGroup": "<myResourceGroup>",
"roleName": "MyReadOnlyRole",
"sqlRoleDefinitionGetResultsType": "CustomRole",
"type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions"
}
]
Azure ãªã½ã¼ã¹ ããã¼ã¸ã£ã¼ã®ãã³ãã¬ã¼ãã使ãã
Azure Resource Manager ãã³ãã¬ã¼ãã使ç¨ãã¦ãã¼ã«ã®å®ç¾©ã使ããæ¹æ³ã®ãªãã¡ã¬ã³ã¹ã¨ä¾ã«ã¤ãã¦ã¯ãMicrosoft.DocumentDB
databaseAccounts/sqlRoleDefinitions
ãåç
§ãã¦ãã ããã
ãã¼ã«ã®å²ãå½ã¦ã®ä½æ
çµã¿è¾¼ã¿ã¾ãã¯ã«ã¹ã¿ã ã®ãã¼ã«ã®å®ç¾©ããèªèº«ã® Microsoft Entra ã«é¢é£ä»ãããã¨ãã§ãã¾ãã ãã¼ã«ã®å²ãå½ã¦ã使ããã¨ãã¯ãæ¬¡ã®æ å ±ãæå®ããå¿ è¦ãããã¾ãã
Azure Cosmos DB ã¢ã«ã¦ã³ãã®ååã
ã¢ã«ã¦ã³ããå«ããªã½ã¼ã¹ ã°ã«ã¼ãã
å²ãå½ã¦ããã¼ã«å®ç¾©ã® IDã
ãã¼ã«ã®å®ç¾©ãå²ãå½ã¦ãå¿ è¦ããã ID ã®ããªã³ã·ãã« IDã
ãã¼ã«ã®å²ãå½ã¦ã®ã¹ã³ã¼ãããµãã¼ããããã¹ã³ã¼ãã¯æ¬¡ã®ã¨ããã§ãã
/
(ã¢ã«ã¦ã³ãã¬ãã«)/dbs/<database-name>
(ãã¼ã¿ãã¼ã¹ã¬ãã«)/dbs/<database-name>/colls/<container-name>
(ã³ã³ããã¼ã¬ãã«)
ã¹ã³ã¼ãã¯ããã¼ã«ã®å®ç¾©ã®å²ãå½ã¦å¯è½ãªã¹ã³ã¼ãã® 1 ã¤ã¨ä¸è´ãããããã®ãµãã¹ã³ã¼ãã§ããå¿ è¦ãããã¾ãã
Note
ãµã¼ãã¹ ããªã³ã·ãã«ã®ãã¼ã«å²ãå½ã¦ã使ããå ´åã¯ãMicrosoft Entra ID portal ãã¬ã¼ãã® [ã¨ã³ã¿ã¼ãã©ã¤ãº ã¢ããªã±ã¼ã·ã§ã³] ã»ã¯ã·ã§ã³ã«ãã [ãªãã¸ã§ã¯ã ID] ã使ç¨ãã¦ãã ããã
Note
è¨è¼ããã¦ããæä½ã¯ã以ä¸ã§ä½¿ç¨ã§ãã¾ãã
- Azure PowerShell: Az.CosmosDB ãã¼ã¸ã§ã³ 1.2.0 以é
- Azure CLI: ãã¼ã¸ã§ã³ 2.24.0 以ä¸
Azure PowerShell ã®ä½¿ç¨
ID ã«ãã¼ã«ãå²ãå½ã¦ã¾ãã
$resourceGroupName = "<myResourceGroup>"
$accountName = "<myCosmosAccount>"
$readOnlyRoleDefinitionId = "<roleDefinitionId>" # as fetched above
# For Service Principals make sure to use the Object ID as found in the Enterprise applications section of the Azure Active Directory portal blade.
$principalId = "<aadPrincipalId>"
New-AzCosmosDBSqlRoleAssignment -AccountName $accountName `
-ResourceGroupName $resourceGroupName `
-RoleDefinitionId $readOnlyRoleDefinitionId `
-Scope "/" `
-PrincipalId $principalId
Azure CLI ã®ä½¿ç¨
ID ã«ãã¼ã«ãå²ãå½ã¦ã¾ãã
resourceGroupName='<myResourceGroup>'
accountName='<myCosmosAccount>'
readOnlyRoleDefinitionId='<roleDefinitionId>' # as fetched above
# For Service Principals make sure to use the Object ID as found in the Enterprise applications section of the Azure Active Directory portal blade.
principalId='<aadPrincipalId>'
az cosmosdb sql role assignment create --account-name $accountName --resource-group $resourceGroupName --scope "/" --principal-id $principalId --role-definition-id $readOnlyRoleDefinitionId --principal-type "ServicePrincipal"
Bicep ã¾ã㯠Azure Resource Manager ãã³ãã¬ã¼ãã®ä½¿ç¨
Bicep ãã³ãã¬ã¼ãã使ç¨ããçµã¿è¾¼ã¿ã®å²ãå½ã¦ã«ã¤ãã¦ã¯ã以ä¸ã®ã¨ããã§ãã
resource sqlRoleAssignment 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2023-04-15' = {
name: guid(<roleDefinitionId>, <aadPrincipalId>, <databaseAccountResourceId>)
parent: databaseAccount
properties:{
principalId: <aadPrincipalId>
roleDefinitionId: '/${subscription().id}/resourceGroups/<databaseAccountResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>'
scope: <databaseAccountResourceId>
}
}
Azure Resource Manager ãã³ãã¬ã¼ãã使ç¨ãã¦ãã¼ã«ã®å²ãå½ã¦ã使ããæ¹æ³ã®ãªãã¡ã¬ã³ã¹ã¨ä¾ã«ã¤ãã¦ã¯ãMicrosoft.DocumentDB
databaseAccounts/sqlRoleAssignments
ãåç
§ãã¦ãã ããã
Microsoft Entra ID ã使ç¨ã㦠SDK ãåæåãã
Azure Cosmos DB ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ãã¢ããªã±ã¼ã·ã§ã³ã§ä½¿ç¨ããã«ã¯ãAzure Cosmos DB SDK ãåæåããæ¹æ³ãæ´æ°ããå¿
è¦ãããã¾ãã ã¢ã«ã¦ã³ãã®ãã©ã¤ã㪠ãã¼ã渡ã代ããã«ãTokenCredential
ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã渡ãå¿
è¦ãããã¾ãã ãã®ã¤ã³ã¹ã¿ã³ã¹ã¯ã使ç¨ãã ID ã«ä»£ãã£ã¦ãMicrosoft Entra ãã¼ã¯ã³ããã§ããããããã«å¿
è¦ãªã³ã³ããã¹ãã Azure Cosmos DB SDK ã«æä¾ãã¾ãã
TokenCredential
ã¤ã³ã¹ã¿ã³ã¹ã®ä½ææ¹æ³ã¯ããã®è¨äºã§ã¯åãæ±ãã¾ããã 使ç¨ãã Microsoft Entra ID ã®ç¨®é¡ (ã¦ã¼ã¶ã¼ ããªã³ã·ãã«ããµã¼ãã¹ ããªã³ã·ãã«ãã°ã«ã¼ããªã©) ã«å¿ãã¦ããã®ãããªã¤ã³ã¹ã¿ã³ã¹ã使ããã«ã¯ãã¾ãã¾ãªæ¹æ³ãããã¾ãã æãéè¦ãªã®ã¯ãTokenCredential
ã¤ã³ã¹ã¿ã³ã¹ãèªåã®ãã¼ã«ãå²ãå½ã¦ã ID (ããªã³ã·ãã« ID) ã解決ã§ããå¿
è¦ããããã¨ã§ãã TokenCredential
ã¯ã©ã¹ã使ããä¾ã次ã«ç¤ºãã¾ãã
次ã®ä¾ã§ã¯ãClientSecretCredential
ã¤ã³ã¹ã¿ã³ã¹ã§ãµã¼ãã¹ ããªã³ã·ãã«ã使ç¨ãã¦ãã¾ãã
.NET ã®å ´å
Azure Cosmos DB ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã¯ç¾å¨ã.NET SDK V3 ã§ãµãã¼ãããã¦ãã¾ãã
TokenCredential servicePrincipal = new ClientSecretCredential(
"<azure-ad-tenant-id>",
"<client-application-id>",
"<client-application-secret>");
CosmosClient client = new CosmosClient("<account-endpoint>", servicePrincipal);
Java ã®å ´å
Azure Cosmos DB ã®ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã¯ç¾å¨ãJava SDK V4 ã§ãµãã¼ãããã¦ãã¾ãã
TokenCredential ServicePrincipal = new ClientSecretCredentialBuilder()
.authorityHost("https://login.microsoftonline.com")
.tenantId("<azure-ad-tenant-id>")
.clientId("<client-application-id>")
.clientSecret("<client-application-secret>")
.build();
CosmosAsyncClient Client = new CosmosClientBuilder()
.endpoint("<account-endpoint>")
.credential(ServicePrincipal)
.build();
JavaScript ã®å ´å
Azure Cosmos DB ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã¯ç¾å¨ãJavaScript SDK V3 ã§ãµãã¼ãããã¦ãã¾ãã
const servicePrincipal = new ClientSecretCredential(
"<azure-ad-tenant-id>",
"<client-application-id>",
"<client-application-secret>");
const client = new CosmosClient({
endpoint: "<account-endpoint>",
aadCredentials: servicePrincipal
});
Python ã使ç¨
Azure Cosmos DB ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã¯ãPython SDK ãã¼ã¸ã§ã³ 4.3.0b4 以éã§ãµãã¼ãããã¦ãã¾ãã
aad_credentials = ClientSecretCredential(
tenant_id="<azure-ad-tenant-id>",
client_id="<client-application-id>",
client_secret="<client-application-secret>")
client = CosmosClient("<account-endpoint>", aad_credentials)
REST API ã§è¦æ±ãèªè¨¼
REST API æ¿èªãããã¼ãæ§ç¯ããã¨ãã¯ã次ã®ä¾ã«ç¤ºãããã«ãtype ãã©ã¡ã¼ã¿ã¼ã Microsoft Entra ID ã«è¨å®ããããã·ã¥ç½²å (sig) ã OAuth ãã¼ã¯ã³ã«è¨å®ãã¾ãã
type=aad&ver=1.0&sig=<token-from-oauth>
ãã¼ã¿ ã¨ã¯ã¹ããã¼ã©ã¼ã®ä½¿ç¨
ãã¼ã¿ ã¨ã¯ã¹ããã¼ã©ã¼å ã§ã® Azure Cosmos DB ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã®ä½¿ç¨ (Azure portal ã¾ã㯠https://cosmos.azure.com ã®ããããã§å ¬é) ã¯ã[Entra ID RBAC ã®æå¹å] è¨å®ã«ãã£ã¦ç®¡çããã¾ãã ãã¼ã¿ ã¨ã¯ã¹ããã¼ã©ã¼ ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®å³ä¸ã«ãã "ãã¤ã¼ã«" ã¢ã¤ã³ã³ãä»ãã¦ãã®è¨å®ã«ã¢ã¯ã»ã¹ã§ãã¾ãã
ãã®è¨å®ã«ã¯ã次㮠3 ã¤ã®æå¹å¤ãããã¾ãã
èªå (æ¢å®): ãã®ã¢ã¼ãã§ã¯ãã¢ã«ã¦ã³ãã§ãã¼ã®ä½¿ç¨ãç¡å¹ã«ãªã£ãå ´åããã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ãèªåçã«ä½¿ç¨ããã¾ãã ãã以å¤ã®å ´åã¯ããã¼ã¿ ã¨ã¯ã¹ããã¼ã©ã¼ã§ãã¼ã¿è¦æ±ã«ã¢ã«ã¦ã³ã ãã¼ã使ç¨ããã¾ãã
True: ãã®ã¢ã¼ãã§ã¯ããã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹ã¯å¸¸ã«ãã¼ã¿ ã¨ã¯ã¹ããã¼ã©ã¼ã®ãã¼ã¿è¦æ±ã«ä½¿ç¨ããã¾ãã ã¢ã«ã¦ã³ãã§ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹ãæå¹ã«ãªã£ã¦ããªãå ´åãè¦æ±ã¯å¤±æãã¾ãã
False: ãã®ã¢ã¼ãã§ã¯ãã¢ã«ã¦ã³ã ãã¼ã¯å¸¸ã«ãã¼ã¿ ã¨ã¯ã¹ããã¼ã©ã¼ã®ãã¼ã¿è¦æ±ã«ä½¿ç¨ããã¾ãã ã¢ã«ã¦ã³ãã§ãã¼ã®ä½¿ç¨ãç¡å¹ã«ãªã£ã¦ããå ´åãè¦æ±ã¯å¤±æãã¾ãã
Azure portal ãã¼ã¿ ã¨ã¯ã¹ããã¼ã©ã¼ã§ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹ãæå¹ã«ããã¢ã¼ãã使ç¨ããå ´åã¯ããã¼ã¿è¦æ±ãè¡ãåã«ã[Entra ID RBAC ã®ãã°ã¤ã³] ãã¿ã³ (ãã¼ã¿ ã¨ã¯ã¹ããã¼ã©ã¼ã®ã³ãã³ã ãã¼ã«ããã¾ã) ãã¯ãªãã¯ããå¿ è¦ãããã¾ãã ããã¯ãcosmos.azure.com ã§ Cosmos Explorer ã使ç¨ããå ´åã¯å¿ è¦ããã¾ããã ãã¼ã¿ ã¢ã¯ã»ã¹ãæå¹ã«ããããã«ããµã¤ã³ã¤ã³ãã ID ã«é©åãªãã¼ã«å®ç¾©ãå²ãå½ã¦ããã¦ãããã¨ã確èªãã¦ãã ããã
ã¾ããã¢ã«ã¦ã³ã ãã¼ã使ç¨ããã¢ã¼ãã«å¤æ´ããã¨ããµã¤ã³ã¤ã³ãã¦ãã ID ã®ä»£ããã«ä¸»ãã¼ãåå¾ããããã®è¦æ±ãããªã¬ã¼ãããå¯è½æ§ããããã¨ã«ã注æãã¦ãã ããã
Note
以åã¯ãCosmos Explorer ã§ã¯ https://cosmos.azure.com/?feature.enableAadDataPlane=true
ã使ç¨ãããã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹ã®ã¿ããµãã¼ãããã¦ãã¾ããã ããã¯å¼ãç¶ããµãã¼ãããã¦ããã[Entra ID RBAC ãæå¹ã«ãã] è¨å®ã®å¤ããªã¼ãã¼ã©ã¤ããã¾ãã ãã®ã¯ã¨ãª ãã©ã¡ã¼ã¿ã¼ã®ä½¿ç¨ã¯ãåè¿°ã® 'True' ã¢ã¼ãã®ä½¿ç¨ã¨ç価ã§ãã
ç£æ»ãã¼ã¿ã®è¦æ±
Azure Cosmos DB ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã使ç¨ããå ´åã診æãã°ã¯åãã¼ã¿æä½ã® ID ã¨æ¿èªæ å ±ã«ãã£ã¦æ¡å¼µããã¾ãã ãã®æ¡å¼µã«ããã詳細ãªç£æ»ãå®è¡ããAzure Cosmos DB ã¢ã«ã¦ã³ãã«éä¿¡ããããã¹ã¦ã®ãã¼ã¿è¦æ±ã«ä½¿ããã Microsoft Entra ID ãåå¾ã§ãã¾ãã
ãã®è¿½å æ å ±ã¯ DataPlaneRequests ãã° ã«ãã´ãªã«ããã2 ã¤ã®è¿½å åã§æ§æããã¦ãã¾ãã
aadPrincipalId_g
ã¯ãè¦æ±ãèªè¨¼ããããã«ä½¿ããã Microsoft Entra ID ã®ããªã³ã·ãã« ID ã表示ãã¾ããaadAppliedRoleAssignmentId_g
ã¯ãè¦æ±ãèªå¯ããã¨ãã«ä½¿ç¨ããããã¼ã«å²ãå½ã¦ã表示ãã¾ãã
ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ãå¯ä¸ã®èªè¨¼æ¹æ³ã¨ãã¦é©ç¨ãã
ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ãä»ãã¦æä»çã« Azure Cosmos DB ã«æ¥ç¶ããããã«ã¯ã©ã¤ã¢ã³ãã«å¼·å¶ãããå ´åã¯ãã¢ã«ã¦ã³ãã®ä¸»/ã»ã«ã³ã㪠ãã¼ãç¡å¹ã«ãããã¨ãã§ãã¾ãã ãã®å ´åã主/ã»ã«ã³ã㪠ãã¼ã¾ãã¯ãªã½ã¼ã¹ ãã¼ã¯ã³ã使ç¨ããçä¿¡è¦æ±ã¯ã¢ã¯ãã£ãã«æå¦ããã¾ãã
Azure ãªã½ã¼ã¹ ããã¼ã¸ã£ã¼ ãã³ãã¬ã¼ãã®ä½¿ç¨
Azure Resource Manager ãã³ãã¬ã¼ãã使ç¨ã㦠Azure Cosmos DB ã¢ã«ã¦ã³ãã使ã¾ãã¯æ´æ°ããå ´åã¯ãdisableLocalAuth
ããããã£ã true
ã«è¨å®ãã¾ãã
"resources": [
{
"type": " Microsoft.DocumentDB/databaseAccounts",
"properties": {
"disableLocalAuth": true,
// ...
},
// ...
},
// ...
]
å¶é
- Azure Cosmos DB ã¢ã«ã¦ã³ããã¨ã«ãæå¤§ 100 ã®ãã¼ã«å®ç¾©ã¨ 2000 ã®ãã¼ã«å²ãå½ã¦ã使ã§ãã¾ãã
- ãã¼ã«å®ç¾©ã¯ãAzure Cosmos DB ã¢ã«ã¦ã³ãã¨åã Microsoft Entra ããã³ãã«å±ãã Microsoft Entra ID ã«ã®ã¿å²ãå½ã¦ããã¨ãã§ãã¾ãã
- ç¾å¨ãMicrosoft Entra ã°ã«ã¼ãã®è§£æ±ºã¯ã200 ãè¶ ããã°ã«ã¼ãã«å±ãã ID ã§ã¯ãµãã¼ãããã¦ãã¾ããã
- Microsoft Entra ãã¼ã¯ã³ã¯ãç¾å¨ãAzure Cosmos DB ãµã¼ãã¹ã«éä¿¡ãããåã ã®è¦æ±ã¨å ±ã«ãããã¼ã¨ãã¦æ¸¡ããããããå ¨ä½çãªãã¤ãã¼ã ãµã¤ãºãå¢å ãã¾ãã
ããå¯ãããã質å
ãã®ã»ã¯ã·ã§ã³ã«ã¯ããã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã¨ Azure Cosmos DB ã«ã¤ãã¦ãããã質åãå«ãã§ãã¾ãã
ãã¼ã¿ ãã¬ã¼ã³ã®ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ããµãã¼ããã¦ãã Azure Cosmos DB API ã¯ã©ãã§ãã?
ç¾æç¹ã§ã¯ãNoSQL API ã®ã¿ããµãã¼ãããã¦ãã¾ãã
Azure portal ãããã¼ã«ã®å®ç¾©ã¨ãã¼ã«ã®å²ãå½ã¦ã管çãããã¨ã¯ã§ãã¾ããã
ãã¼ã«ç®¡çã® Azure portal ãµãã¼ãã¯ã¾ã å©ç¨ã§ãã¾ããã
Azure Cosmos DB API for NoSQL ã®ã©ã® SDK ããã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ããµãã¼ããã¦ãã¾ããã
.NET V3ãJava V4ãJavaScript V3ãPython V4.3+ SDKs ãç¾å¨ã®ã¨ããããµãã¼ãããã¦ãã¾ãã
Microsoft Entra ãã¼ã¯ã³ã¯ãæå¹æéãåãã㨠Azure Cosmos DB SDK ã«ãã£ã¦èªåçã«æ´æ°ããã¾ããã
ã¯ãã
ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã使ç¨ããå ´åãã¢ã«ã¦ã³ãã®ä¸»/ã»ã«ã³ã㪠ãã¼ã®ä½¿ç¨ãç¡å¹ã«ãããã¨ã¯ã§ãã¾ããã
ã¯ããããã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ãå¯ä¸ã®èªè¨¼æ¹æ³ã¨ãã¦é©ç¨ããããåç §ãã¦ãã ããã
次ã®ã¹ããã
- Azure Cosmos DB å ã®ãã¼ã¿ã¸ã®ã»ãã¥ãªãã£ã§ä¿è·ãããã¢ã¯ã»ã¹ã®æ¦è¦ãçè§£ãã¾ãã
- Azure Cosmos DB 管çã®ãã¼ã«ãã¼ã¹ã®ã¢ã¯ã»ã¹å¶å¾¡ã®è©³ç´°ã«ã¤ãã¦èª¬æãã¾ãã