IAM-Berechtigungsnachweise erstellen
Sie können IBM Cloud® Secrets Manager zum dynamischen Generieren von IAM-Berechtigungsnachweisen für den Zugriff auf eine IBM Cloud-Ressource verwenden, für die eine IAM-Authentifizierung erforderlich ist.
IAM-Anmeldeinformationen sind dynamische GeheimnisseEin eindeutiger Wert, beispielsweise ein Kennwort oder ein API-Schlüssel, der dynamisch erstellt und per Leasing einer Anwendung zur Verfügung gestellt wird, die Zugriff auf eine geschützte Ressource benötigt. Nachdem ein dynamischer geheimer Schlüssel das Ende des Leasingzeitraums erreicht hat, wird die Zugriffsberechtigung für die geschützte Ressource widerrufen und der geheime Schlüssel wird automatisch gelöscht., die Sie für den Zugriff auf eine IBM Cloud Ressource verwenden können. Eine Gruppe von IAM-Berechtigungsnachweisen besteht aus einer Service-ID und einem API-Schlüssel, der jedes Mal generiert wird, wenn die geschützte Ressource gelesen wird oder wenn auf Sie zugegriffen wird. Sie können bei der Erstellung Ihres IAM-Berechtigungsnachweises eine Lebensdauer (TTL, Time-to-live) oder eine Zeitdauer für die Überlassung definieren und dadurch die Zeitdauer verkürzen, die der geheime Schlüssel existiert.
Weitere Informationen zu den Typen von geheimen Schlüsseln, die Sie in Secrets Managerverwalten können, finden Sie unter Was ist ein geheimer Schlüssel?
Vorbereitende Schritte
Bevor Sie beginnen, müssen Sie prüfen, ob Sie über die erforderliche Zugriffsebene verfügen. Zum Erstellen oder Hinzufügen von geheimen Schlüsseln benötigen Sie die Servicerolle Schreibberechtigter oder eine Rolle mit größerem Berechtigungsumfang.
IAM-Berechtigungsnachweise erfordern einen Konfigurationsschritt, bevor Sie sie im Dienst erstellen oder verwalten können. Weitere Informationen finden Sie unter IAM-Engine für Berechtigungsnachweise konfigurieren.
Wenn Sie die Lebensdauer eines geheimen IAM-Berechtigungsnachweisschlüssels ändern, wird sie nur bei der nächsten Rotation der geheimen Version angewendet.
Das IAM-Anmeldungsgeheimnis, das von Secrets Manager erstellt wird, ist auch der Name des IAM-API-Schlüssels. Ein Geheimnis mit dem Namen my-secret-name hat zum Beispiel einen passenden API-Schlüssel mit dem Namen Secrets-Manager-IAM-Secret-my-secret-name.
Wenn Sie das Geheimnis später in Secrets Manager umbenennen, wird diese Änderung nicht in IAM reflektiert, aber die Funktionalität wird nicht unterbrochen.
Ein Kontoadministrator (oder eine beliebige Entität mit der erforderlichen Zugriffsebene) kann IAM-Berechtigungsnachweise, die von Secrets Manager erstellt und verwaltet werden, von außen ändern. Wenn eine solche Dienst-ID oder ein API-Schlüssel außerhalb von Secrets Manager gelöscht wird, kann sich der Dienst unerwartet verhalten. Sie können beispielsweise Berechtigungsnachweise nicht erstellen oder wechseln.
IAM-Berechtigungsnachweise in der Benutzerschnittstelle erstellen
Führen Sie die folgenden Schritte aus, um IAM-Berechtigungsnachweise über die Secrets Manager-Benutzerschnittstelle zu erstellen.
-
Klicken Sie in der Konsole auf das Symbol Menü
> Ressourcenliste.
-
Wählen Sie in der Liste der Services Ihre Instanz von Secrets Manager aus.
-
Klicken Sie in der Tabelle Geheime Schlüssel auf Hinzufügen.
-
Klicken Sie in der Liste der Typen geheimer Schlüssel auf die Kachel IAM-Berechtigungsnachweise.
-
Klicken Sie auf Weiter.
-
Fügen Sie einen Namen und eine Beschreibung hinzu, um Ihren geheimen Schlüssel leicht identifizieren zu können.
-
Wählen Sie die geheime GruppeDie Umgebung und die Bedingungen, denen die enthaltenen geheimen Schlüssel in einer Instanz entsprechen müssen. Ein Benutzer kann einer Gruppe geheimer Schlüssel zugeordnet werden, um den Zugriff und die Zusammenarbeit zu ermöglichen. , die Sie dem Geheimnis zuordnen möchten.
Haben Sie noch keine Gruppe geheimer Schlüssel? Im Feld Gruppe geheimer Schlüssel können Sie auf Erstellen klicken, um einen Namen und eine Beschreibung für eine neue Gruppe anzugeben. Ihr geheimer Schlüssel wird automatisch zur neuen Gruppe hinzugefügt. Weitere Informationen zu Gruppen geheimer Schlüssel finden Sie im Abschnitt zum Organisieren Ihrer geheimen Schlüssel.
-
Optional: Fügen Sie Bezeichnungen hinzu, die Ihnen helfen, nach ähnlichen geheimen Schlüsseln in Ihrer Instanz zu suchen.
-
Optional: Fügen Sie Ihrem geheimen Schlüssel oder einer bestimmten Version Ihres geheimen Schlüssels Metadaten hinzu.
- Laden Sie eine Datei hoch oder geben Sie die Metadaten und die Versionsmetadaten im JSON-Format ein.
-
Klicken Sie auf Weiter.
-
Legen Sie eine Gültigkeitsdauer (Lease) oder einen TTL-Wert (Time-to-Live) für den geheimen Schlüssel fest.
Wenn Sie eine Gültigkeitsdauer (Lease) für Ihren IAM-Berechtigungsnachweis festlegen, wird damit angegeben, wie lange der zugehörige API-Schlüssel gültig bleibt. Wenn der IAM-Berechtigungsnachweis das Ende der Gültigkeitsdauer (Lease) erreicht, wird er automatisch widerrufen.
Die Mindestdauer beträgt 1 Minute. Die Maximaldauer beträgt 90 Tage.
- Optional: Bestimmen Sie, ob IAM-Berechtigungsnachweise wiederverwendet werden können für Ihren geheimen Schlüssel.
- Optional: Aktivieren Sie die automatische Rotation Ihres geheimen Schlüssels. Geheimnisse können nur dann automatisch rotiert werden, wenn die Option zur Wiederverwendung von IAM-Anmeldeinformationen aktiviert ist.
- Klicken Sie auf Weiter.
- Bestimmen Sie das Quellkonto.
- Bestimmen Sie den Umfang des zu vergebenden Zugriffs.
- Klicken Sie auf Weiter.
- Überprüfen Sie die Details Ihres geheimen Schlüssels.
- Klicken Sie auf Hinzufügen.
Denselben API-Schlüssel wiederverwenden, bis die Zugangsberechtigung abläuft
IAM-Berechtigungsnachweise bestehen aus einer Service-ID und einem API-Schlüssel. Standardmäßig sind die Service-ID und der API-Schlüssel ephemere Einzelwerte, die jedes Mal generiert und gelöscht werden, wenn ein geheimer Schlüssel für IAM-Berechtigungsnachweise gelesen oder darauf zugegriffen wird.
Wenn Sie diese Berechtigungsnachweise bis zum Ende der Zugangsberechtigung für Ihren geheimen Schlüssel weiterhin verwenden wollen, können Sie IAM-Berechtigungsnachweise wiederverwenden, bis Zugangsberechtigung abläuft auf ansetzen. Wenn Sie diese Option aktivieren, behält Ihr Geheimnis seine aktuelle Service-ID und die API-Schlüsselwerte und verwendet sie bei jedem Lesen erneut, solange das Geheimnis gültig ist. Wenn der geheime Schlüssel das Ende seiner Gültigkeit (Lease) erreicht hat, werden die Berechtigungsnachweise automatisch widerrufen.
Wenn die Option zur Wiederverwendung von IAM-Anmeldeinformationen auf Aus gesetzt ist, wird die manuelle Rotation für das Geheimnis nicht unterstützt. Weitere Informationen finden Sie unter Geheime Schlüssel manuell drehen.
Quellkonto ermitteln
Secrets Manager kann IAM-Anmeldungsgeheimnisse entweder vom aktuellen IBM Cloud-Konto oder von einem bestimmten IBM Cloud-Konto erstellen und verwalten. Wenn Sie die Erstellung von einem bestimmten Konto wählen, geben Sie die ID des Kontos an.
Bestimmen Sie den Umfang des zu vergebenden Zugriffs
Möglicherweise haben Sie bereits eine Service-ID in Ihrem Konto, für die Sie einen API-Schlüssel generieren möchten, indem Sie die Service-ID auswählen. Alternativ können Sie sowohl eine Service-ID als auch einen API-Schlüssel generieren, indem Sie den Zugriff einer Zugriffsgruppe zuweisen.
Wählen Sie im Schritt Zugriff zuweisen des Assistenten zum Erstellen von IAM-Anmeldeinformationen einen Zugriffsbereich für Ihr Geheimnis.
-
Um eine vorhandene Service-ID zu verwenden, wählen Sie eine ID aus der Liste aus. Handelt es sich bei dem Ausgangskonto um ein bestimmtes anderes Konto, geben Sie die ID des Dienstes in folgendem Format an:
ServiceId-c0c7cfa4-b24e-4917-ad74-278f2fee5ba0.Wählen Sie diese Option, wenn Sie Secrets Manager benötigen, um nur einen API-Schlüssel für Ihren geheimen IAM-Berechtigungsnachweisschlüssel und nicht die Service-ID selbst zu generieren und zu verwalten. Der API-Schlüssel übernimmt die Zugriffsrichtlinie der Service-ID, die Sie aus Ihrem Konto auswählen. Es werden nur die Service-IDs angezeigt, auf die Sie Zugriff haben.
-
Wählen Sie eine Zugriffsgruppe aus, um eine neue Service-ID und einen neuen API-Schlüssel für den geheimen Schlüssel zu generieren. Wenn es sich bei dem Quellkonto um ein bestimmtes Konto handelt, geben Sie die IDs der gewünschten Zugriffsgruppen an.
Durch die Auswahl einer Zugriffsgruppe legen Sie den Umfang der Berechtigungen fest, die der Service-ID und dem API-Schlüssel über die Zugriffsgruppe zugewiesen werden. Die Service-ID und der API-Schlüssel werden generiert und mit Ihren neuen IAM-Anmeldeinformationen verknüpft. Sie können bis zu 10 Zugriffsgruppen zuordnen.
Zugriffsrichtlinien sollten der/den ausgewählten Zugriffsgruppe(n) zugewiesen werden und nicht direkt den Service-IDs. Sowohl die Service-ID als auch der API-Schlüssel werden gelöscht und neue erstellt, sobald die TTL der IAM-Anmeldeinformationen erreicht ist.
Wenn Sie eine vorhandene Service-ID verwendet haben, wird der von Secrets Manager generierte API-Schlüssel automatisch gesperrt. Wenn Sie eine Zugriffsgruppe ausgewählt haben, werden sowohl die neue Service-ID als auch der API-Schlüssel, den Secrets Manager für das Geheimnis erstellt, automatisch gesperrt. Jedes Mal, wenn Sie ein IAM-Anmeldungsgeheimnis abrufen über die API verwenden, werden der API-Schlüssel und die Service-ID, die Secrets Manager generiert, gesperrt, auch wenn Sie sie vor dem Abrufen des Geheimnisses manuell entsperren.
IAM-Berechtigungsnachweise über die Befehlszeilenschnittstelle erstellen
Bevor Sie beginnen, folgen Sie den CLI-Dokumenten, um Ihren API-Endpunkt festzulegen.
Um eine Dienst-ID und einen API-Schlüssel mit dem Secrets Manager CLI-Plugin zu erstellen, führen Sie den ibmcloud secrets-manager secret-create befehl aus. Um sie in einem bestimmten anderen Konto zu erstellen, fügen Sie die Option --iam-credentials-account-id hinzu.
ibmcloud secrets-manager secret-create --secret-type iam_credentials --secret-name "example-iam-credentials-secret" --secret-description "Description of my IAM credentials secret" --iam-credentials-access-groups ["<access_group_id>, ..."] --secret-ttl 30m --iam-credentials-reuse-apikey true
Um eine vorhandene Dienst-ID zu verwenden und einen API-Schlüssel mit dem Secrets Manager CLI-Plug-in zu erstellen, führen Sie den Befehl ibmcloud secrets-manager secret-create aus. Um sie in einem bestimmten anderen Konto zu erstellen, fügen Sie die Option --iam-credentials-account-id hinzu.
ibmcloud secrets-manager secret-create --secret-type iam_credentials --secret-name "example-iam-credentials-secret" --secret-description "Description of my IAM credentials secret" --iam-credentials-service-id "ServiceId-c0c7cfa4-b24e-4917-ad74-278f2fee5ba0" --secret-ttl 90d --iam-credentials-reuse-apikey true
Sie können den ID-Wert einer Dienst-ID im IAM-Abschnitt der Konsole finden. Gehen Sie zu Verwalten > Zugriff (IAM) > Dienst-IDs > Name. Klicken Sie auf Details, um die ID anzuzeigen.
Der Befehl gibt den ID-Wert des geheimen Schlüssels zusammen mit anderen Metadaten aus. Weitere Informationen zu den Befehlsoptionen finden Sie in ibmcloud secrets-manager secret-create.
Denselben API-Schlüssel wiederverwenden, bis die Zugangsberechtigung abläuft
Wenn Sie die IAM-Anmeldeinformationen bis zum Ende der Laufzeit Ihres Geheimnisses weiter verwenden möchten, können Sie die Option --iam-credentials-reuse-apikey verwenden. Wenn es auf true gesetzt ist, behält Ihr
Geheimnis seine aktuellen Werte für die Service-ID und den API-Schlüssel und verwendet sie bei jedem Lesen erneut, solange das Geheimnis gültig ist. Andernfalls setzen Sie es auf false. Der folgende Beispielbefehl erstellt beispielsweise
IAM-Anmeldeinformationen, die bis zum Ablauf ihrer Gültigkeit wiederverwendet werden können.
ibmcloud secrets-manager secret-create --secret-type iam_credentials --secret-name "example-iam-credentials-secret" --secret-description "Description of my IAM credentials secret" --iam-credentials-service-id "<iam_id_of_service_id>" --secret-ttl 30m --iam-credentials-reuse-apikey true
Der Befehl gibt den ID-Wert des geheimen Schlüssels zusammen mit anderen Metadaten aus. Wenn der geheime Schlüssel das Ende seiner Gültigkeit (Lease) erreicht hat, werden die Berechtigungsnachweise automatisch widerrufen. Weitere Informationen
zu den Befehlsoptionen finden Sie in ibmcloud secrets-manager secret-create.
Wenn --iam-credentials-reuse-apikey für IAM-Anmeldeinformationen auf false eingestellt ist, wird die manuelle Rotation für das Geheimnis nicht unterstützt. Weitere Informationen finden Sie unter Geheime Schlüssel manuell rotieren.
IAM-Berechtigungsnachweise über die API erstellen
Sie können IAM-Berechtigungsnachweise programmgesteuert erstellen, indem Sie die Secrets Manager-API aufrufen.
Das folgende Beispiel zeigt eine Abfrage, die Sie verwenden können, um eine Dienst-ID und einen API-Schlüssel zu erstellen. Wenn Sie die API aufrufen, müssen Sie die ID-Variablen und das IAM-Token durch die Werte ersetzen, die für Ihre Secrets
Manager-Instanz spezifisch sind. Um sie in einem bestimmten anderen Konto zu erstellen, fügen Sie das Feld account_id hinzu.
Sie können Metadaten, die für die Anforderungen Ihrer Organisation relevant sind, mit den Anforderungsparametern custom_metadata und version_custom_metadata speichern. Werte von version_custom_metadata werden nur für die Versionen eines geheimen Schlüssels zurückgegeben. Die angepassten Metadaten Ihres geheimen Schlüssels werden wie alle anderen Metadaten für bis zu 50 Versionen gespeichert und Sie dürfen keine vertraulichen Daten einschließen.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
{
"name": "example-iam-credentials-secret",
"description": "Description of my IAM Credentials secret",
"secret_type": "iam_credentials",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"ttl": "30m",
"access_groups": [
"AccessGroupId-45884031-54be-4dd7-86ff-112511e92699",
"AccessGroupId-8c0ed733-dfee-4a94-992b-e2247b86e2a2"
],
"reuse_api_key": false,
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \ "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
Eine erfolgreiche Antwort gibt den ID-Wert für den geheimen Schlüssel zusammen mit anderen Metadaten zurück. Weitere Informationen zu den erforderlichen und optionalen Anforderungsparametern finden Sie unter API-Referenz.
Denselben API-Schlüssel wiederverwenden, bis die Zugangsberechtigung abläuft
Wenn Sie die IAM-Anmeldedaten bis zum Ende der Laufzeit Ihres Geheimnisses verwenden möchten, können Sie das Feld reuse_api_key verwenden. Wenn true festgelegt ist, behält Ihr geheimer Schlüssel seine aktuelle Service-ID
und seine API-Schlüsselwerte bei und verwendet sie bei jedem Lesevorgang, während der geheime Schlüssel gültig bleibt. Der folgende Beispielbefehl erstellt beispielsweise IAM-Anmeldeinformationen, die bis zum Ablauf ihrer Gültigkeit wiederverwendet
werden können.
Sie können Metadaten, die für die Anforderungen Ihrer Organisation relevant sind, mit den Anforderungsparametern custom_metadata und version_custom_metadata speichern. Werte von version_custom_metadata werden nur für die Versionen eines geheimen Schlüssels zurückgegeben. Die angepassten Metadaten Ihres geheimen Schlüssels werden wie alle anderen Metadaten für bis zu 50 Versionen gespeichert und Sie dürfen keine vertraulichen Daten einschließen.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
{
"name": "example-iam-credentials-secret",
"description": "Description of my IAM Credentials secret",
"secret_type": "iam_credentials",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"ttl": "30m",
"access_groups": [
"AccessGroupId-45884031-54be-4dd7-86ff-112511e92699",
"AccessGroupId-8c0ed733-dfee-4a94-992b-e2247b86e2a2"
],
"reuse_api_key": true,
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
Eine erfolgreiche Anforderung gibt den ID-Wert des geheimen Schlüssels zusammen mit anderen Metadaten zurück. Wenn der geheime Schlüssel das Ende seiner Gültigkeit (Lease) erreicht hat, werden die Berechtigungsnachweise automatisch widerrufen. Weitere Informationen finden Sie in der API-Referenz.
Wenn reuse_api_key für IAM-Berechtigungsnachweise false ist, wird die manuelle Rotation für den geheimen Schlüssel nicht unterstützt. Weitere Informationen finden Sie unter Geheime Schlüssel manuell rotieren.
Vorhandene Service-ID in Ihrem Konto verwenden
Möglicherweise verfügen Sie bereits über eine Service-ID, die Sie zum dynamischen Generieren eines API-Schlüssels verwenden möchten. In diesem Szenario können Sie einen geheimen IAM-Berechtigungsnachweis erstellen, indem Sie Ihre eigene Service-ID
verwenden. Der folgende Befehl erstellt beispielsweise einen IAM-Berechtigungsnachweis mithilfe des Felds service_id. Um sie in einem bestimmten anderen Konto zu erstellen, fügen Sie das Feld account_id hinzu.
Sie können Metadaten, die für die Anforderungen Ihrer Organisation relevant sind, mit den Anforderungsparametern custom_metadata und version_custom_metadata speichern. Werte von version_custom_metadata werden nur für die Versionen eines geheimen Schlüssels zurückgegeben. Die angepassten Metadaten Ihres geheimen Schlüssels werden wie alle anderen Metadaten für bis zu 50 Versionen gespeichert und Sie dürfen keine vertraulichen Daten einschließen.
Sie können den ID-Wert einer Dienst-ID im IAM-Abschnitt der Konsole finden. Gehen Sie zu Verwalten > Zugriff (IAM) > Dienst-IDs > Name. Klicken Sie auf Details, um die ID anzuzeigen.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "example-iam-credentials-secret",
"description": "Description of my IAM Credentials secret",
"secret_type": "iam_credentials",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"ttl": "30m",
"service_id": "ServiceId-c0c7cfa4-b24e-4917-ad74-278f2fee5ba0,
"reuse_api_key": false,
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
Eine erfolgreiche Anforderung gibt den ID-Wert des geheimen Schlüssels zusammen mit anderen Metadaten zurück. Weitere Informationen finden Sie in der API-Referenz.
IAM-Berechtigungsnachweise mit Terraform erstellen
Sie können IAM-Berechtigungsnachweise programmgesteuert erstellen, indem Sie Terraform für Secrets Managerverwenden.
Sie müssen ein depends_on-Terraform-Metaargument hinzufügen und auf Ihre IAM-Konfigurationsressource verweisen. Das Metaargument depends_on weist Terraform an, alle Aktionen für die IAM-Konfiguration auszuführen, bevor
Sie Aktionen für die geheimen IAM-Berechtigungsnachweise ausführen. Wenn Sie ein kontoübergreifendes IAM-Anmeldungsgeheimnis erstellen, schließen Sie die Eigenschaft account_id ein, die auf das IBM Cloud-Konto verweist, unter
dem die Service-ID erstellt wurde.
Das folgende Beispiel zeigt eine Konfiguration, mit der Sie IAM-Berechtigungsnachweise erstellen können.
resource "ibm_sm_iam_credentials_secret" "test_iam_credentials_secret" {
instance_id = local.instance_id
region = local.region
service_id = "ServiceId-f4b2deac-fbb5-4bf7-85de-88426701db97"
ttl = "1800"
name = "test-iam-credentials-secret"
reuse_api_key = true
secret_group_id = ibm_sm_secret_group.sm_secret_group_test.secret_group_id
depends_on = [
ibm_sm_iam_credentials_configuration.iam_credentials_configuration
]
}
Automatisieren Sie die Erstellung von IAM-Anmeldeinformationen mit den Terraform IBM Modulen (TIM) für Secrets Manager Secret für konsistente, versionskontrollierte Implementierungen. Erfahren Sie mehr über Terraform IBM Module.
IAM-Berechtigungsnachweise löschen
Wenn Sie über eine Service-ID oder einen API-Schlüssel verfügen, die bzw. der von der Engine für geheime IAM-Berechtigungsnachweise generiert wurde, und Ihre Instanz von Secrets Managerlöschen, müssen Sie auch den geheimen Schlüssel aus IAM löschen. Weitere Informationen finden Sie unter Benutzer-API-Schlüssel verwalten.