Tous les produits
Search
Centre de documentation

Blockchain as a Service:Authentification RAM pour Hyperledger Fabric

Dernière mise à jour :Aug 11, 2026

Resource Access Management (RAM) vous permet d'accorder aux utilisateurs RAM et aux détenteurs de jetons Security Token Service (STS) un accès précis aux ressources Blockchain as a Service (BaaS). Utilisez l'authentification RAM pour gérer l'accès des membres de votre équipe, partager des ressources entre plusieurs comptes Alibaba Cloud ou déléguer l'accès entre les services cloud.

Pour en savoir plus sur RAM, consultez la documentation RAM et la référence API RAM.

Types de ressources autorisables

Les ressources Hyperledger Fabric dans BaaS utilisent les formats ARN (Alibaba Cloud Resource Name) suivants dans les politiques d'autorisation :

Type de ressource Format ARN
Consortium acs:baas:$regionId:$accountId:consortium/$consortiumId
Organisation acs:baas:$regionId:$accountId:organization/$organizationId
Canal acs:baas:*:$accountId:channel/$channelId
Chaincode acs:baas:*:$accountId:chaincode/$chaincodeId

Référence des champs ARN :

  • $regionId : région où se trouve la ressource.

  • $accountId : ID du compte Alibaba Cloud propriétaire de la ressource.

  • $consortiumId / $organizationId / $channelId / $chaincodeId : ID de la ressource dans BaaS.

Remarque

Les canaux et les chaincodes sont des ressources globales. Définissez

$regionId

sur

*

pour ces types de ressources.

API autorisées par défaut

Tous les utilisateurs RAM et les détenteurs de jetons STS peuvent accéder aux API suivantes sans politique explicite :

API
CheckFabricConsortiumDomain
CheckFabricOrganizationDomain
DescribeTasks
DescribeRootDomain
DescribeFabricConsortiumConfig
DescribeFabricConsortiumSpecs
DescribeFabricOrganizationSpecs
DescribeFabricInviter
DescribeFabricChaincodeUploadPolicy
AcceptFabricInvitation

API autorisables

Le tableau ci-dessous répertorie toutes les API nécessitant une autorisation explicite. La colonne Access level indique l'impact de chaque action afin de vous aider à appliquer le principe du moindre privilège :

  • List : renvoie une collection de ressources. Impact faible.

  • Read : renvoie les détails d'une ressource spécifique ou télécharge des artefacts. Impact faible.

  • Write : crée, modifie ou supprime des ressources. Impact plus élevé — définissez soigneusement la portée des autorisations.

APIAccess levelResource ARN
CreateFabricOrganizationWriteacs:baas:$regionId:$accountId:organization/*
DescribeFabricOrganizationReadacs:baas:$regionId:$accountId:organization/$organizationId
DescribeFabricOrganizationDeletableReadacs:baas:$regionId:$accountId:organization/$organizationId
DescribeFabricOrganizationsListacs:baas:*:$accountId:organization/*
DescribeFabricCandidateOrganizationsListacs:baas:*:$accountId:organization/*
CreateFabricChannelWriteacs:baas:*:$accountId:channel/*

acs:baas:$regionId:$accountId:consortium/$consortiumId

DescribeFabricOrganizationChannelsListacs:baas:$regionId:$accountId:organization/$organizationId
DescribeFabricConsortiumChannelsListacs:baas:$regionId:$accountId:consortium/$consortiumId
CreateFabricChannelMemberWriteacs:baas:*:$accountId:channel/$channelId
DescribeFabricChannelMembersListacs:baas:*:$accountId:channel/$channelId
JoinFabricChannelWriteacs:baas:*:$accountId:channel/$channelId
CreateFabricConsortiumWriteacs:baas:$regionId:$accountId:consortium/*
CreateFabricConsortiumMemberWriteacs:baas:$regionId:$accountId:consortium/$consortiumId
ConfirmFabricConsortiumMemberWriteacs:baas:$regionId:$accountId:consortium/$consortiumId
DescribeFabricOrganizationMembersListacs:baas:$regionId:$accountId:organization/$organizationId
DescribeFabricOrganizationPeersListacs:baas:$regionId:$accountId:organization/$organizationId
DescribeFabricConsortiumsListacs:baas:*:$accountId:consortium/*
DescribeFabricConsortiumAdminStatusReadacs:baas:*:$accountId:consortium/*
DescribeFabricConsortiumMembersListacs:baas:$regionId:$accountId:consortium/$consortiumId
DescribeFabricConsortiumMemberApprovalReadacs:baas:$regionId:$accountId:consortium/$consortiumId
DescribeFabricConsortiumOrderersListacs:baas:$regionId:$accountId:consortium/$consortiumId
DescribeFabricConsortiumDeletableReadacs:baas:$regionId:$accountId:consortium/$consortiumId
CreateFabricChaincodeWriteacs:baas:*:$accountId:chaincode/*

acs:baas:*:$accountId:channel/$channelId

acs:baas:$regionId:$accountId:consortium/$consortiumId

acs:baas:$regionId:$accountId:organization/$organizationId

DescribeFabricOrganizationChaincodesListacs:baas:$regionId:$accountId:organization/$organizationId
DescribeFabricConsortiumChaincodesListacs:baas:$regionId:$accountId:consortium/$consortiumId
DeleteFabricChaincodeWriteacs:baas:*:$accountId:chaincode/$chaincodeId
InstallFabricChaincodeWriteacs:baas:*:$accountId:chaincode/$chaincodeId

acs:baas:$regionId:$accountId:organization/$organizationId

InstantiateFabricChaincodeWriteacs:baas:*:$accountId:chaincode/$chaincodeId

acs:baas:$regionId:$accountId:organization/$organizationId

UpgradeFabricChaincodeWriteacs:baas:*:$accountId:chaincode/$chaincodeId

acs:baas:$regionId:$accountId:organization/$organizationId

SynchronizeFabricChaincodeWriteacs:baas:*:$accountId:chaincode/$chaincodeId

acs:baas:$regionId:$accountId:organization/$organizationId

CreateFabricOrganizationUserWriteacs:baas:$regionId:$accountId:organization/$organizationId
DescribeFabricOrganizationUsersListacs:baas:$regionId:$accountId:organization/$organizationId
ResetFabricOrganizationUserPasswordWriteacs:baas:$regionId:$accountId:organization/$organizationId
DownloadFabricOrganizationSDKReadacs:baas:$regionId:$accountId:organization/$organizationId
DescribeFabricInvitationCodeReadacs:baas:$regionId:$accountId:consortium/$consortiumId
Remarque

Les API qui opèrent sur les canaux ou les chaincodes requièrent

*

comme région dans l'ARN de ressource correspondant, car les canaux et les chaincodes sont des ressources globales. Les autorisations accordées sur une ressource de consortium ou d'organisation ne s'étendent pas automatiquement aux canaux ou aux chaincodes associés à cette ressource ; incluez explicitement chaque type de ressource dans la politique.

Exemples de politiques

Exemple 1 : Accès en lecture seule

Accorde un accès en lecture à toutes les ressources BaaS et la possibilité de télécharger les SDK d'organisation. Cette configuration convient aux auditeurs ou aux membres de l'équipe qui doivent consulter l'état de la blockchain sans effectuer de modifications.

{
  "Statement": [
    {
      "Sid": "ReadAllBaaSResources",
      "Action": ["baas:Describe*", "baas:DownloadFabricOrganizationSDK"],
      "Effect": "Allow",
      "Resource": "acs:baas:*:*:*"
    }
  ],
  "Version": "1"
}

Exemple 2 : Gestion des chaincodes

Accorde des autorisations complètes sur le cycle de vie des chaincodes (téléchargement, installation, instanciation, mise à niveau et suppression) pour toutes les organisations, consortiums et canaux. Cette configuration est adaptée aux administrateurs de chaincodes.

{
  "Statement": [
    {
      "Sid": "ManageAllChaincodes",
      "Action": "baas:*Chaincode",
      "Effect": "Allow",
      "Resource": [
        "acs:baas:*:*:chaincode/*",
        "acs:baas:*:*:organization/*",
        "acs:baas:*:*:consortium/*",
        "acs:baas:*:*:channel/*"
      ]
    }
  ],
  "Version": "1"
}

Exemple 3 : Accès granulaire pour un développeur de chaincode

Combine un accès en lecture seule sur toutes les ressources avec des autorisations de gestion des chaincodes limitées à des consortiums, organisations et canaux spécifiques. Cette approche applique le principe du moindre privilège.

Remplacez $consortiumId, $organizationId et $channelId par les ID de ressource réels issus de BaaS.

Remarque

Les ARN de canal et de chaincode doivent utiliser

*

comme région, indépendamment de la région spécifiée pour le consortium ou l'organisation. Les autorisations sur un consortium ou une organisation ne se propagent pas aux canaux ou aux chaincodes associés ; vous devez lister chaque type de ressource séparément.

{
  "Statement": [
    {
      "Sid": "ReadAllBaaSResources",
      "Action": ["baas:Describe*", "baas:DownloadFabricOrganizationSDK"],
      "Effect": "Allow",
      "Resource": "acs:baas:*:*:*"
    },
    {
      "Sid": "ManageChaincodeInScopedResources",
      "Action": "baas:*Chaincode",
      "Effect": "Allow",
      "Resource": [
        "acs:baas:*:*:chaincode/*",
        "acs:baas:*:*:organization/$organizationId",
        "acs:baas:*:*:consortium/$consortiumId",
        "acs:baas:*:*:channel/$channelId"
      ]
    }
  ],
  "Version": "1"
}